symfony - 对于 200 到 299 之间的 HTTP 状态,Response::isOk() 不应该返回 true 吗?
问题描述
我正在使用 Symfony 构建 REST API。我处于想要在事件中执行一些操作的情况kernel.terminate
,但我想确保在执行此操作之前已成功处理请求。
为此,由于我使用 REST 约定并且应该在发生错误时返回适当的 HTTP 状态代码,因此我想检查响应 HTTP 状态。Symfony\Component\HttpFoundation\Response::isOk()
如果 HTTP 状态在 200 到 299 之间,该方法似乎比手动检查更合适且更具可读性,但它true
仅在 HTTP 状态等于 200 时返回。因为我在创建资源时返回 201 状态代码,所以我不能使用它为了那个原因。
在 Github 上打开问题之前,我想知道这种方法是否有理由不返回true
其他成功的 HTTP 状态?
谢谢!
解决方案
您可以使用对象中的isSuccessful()
方法Response
:
/**
* Is response successful?
*
* @return bool
*
* @final since version 3.2
*/
public function isSuccessful()
{
return $this->statusCode >= 200 && $this->statusCode < 300;
}
推荐阅读
- java - 使用结构化流(JAVA)时如何保存为压缩的json?
- android - 错误:清单合并失败:uses-sdk:minSdkVersion 1 不能小于库 [__tested_artifact__::CordovaLib] 中声明的版本 19
- r - 每次在其他列中出现另一个值时,按 id 提取行
- javascript - JS rest api 更新html
- azure - 由于身份不匹配,ARM 部署有时会失败
- c# - 从 C# 串行端口类读取字节时丢失字节
- saml - Workday 作为 SAML 身份验证的 ID 提供者
- javascript - Slick Slider:将幻灯片宽度与 Bootstrap 容器宽度对齐
- mysql - 在 MySQL 中返回重复行时如何修复 SUM
- import - SPSS error 4163, import file but columns definition makes DATA LIST syntax line too long?