对于 200 到 299 之间的 HTTP 状态,Response::isOk() return 不应该为真吗?
Shouldn't Response::isOk() return true for an HTTP status between 200 and 299?
我正在使用 Symfony 构建 REST API。我处于一种情况,我想在 kernel.terminate
事件中执行一些操作,但我想确保在执行此操作之前已成功处理请求。
为此,因为我使用 REST 约定并且在发生错误时应该 return 适当的 HTTP 状态代码,所以我想检查响应 HTTP 状态。如果 HTTP 状态在 200 和 299 之间,方法 Symfony\Component\HttpFoundation\Response::isOk()
似乎更合适并且比手动检查更可读,但它 returns true
只有当 HTTP 状态等于 200 时。因为我 return 创建资源时的 201 状态代码,我不能为此使用它。
在 Github 上打开一个问题之前,我想知道是否有这种方法不能 return true
其他成功 HTTP 状态的原因?
谢谢!
您可以使用 Response
对象的 isSuccessful()
方法:
/**
* Is response successful?
*
* @return bool
*
* @final since version 3.2
*/
public function isSuccessful()
{
return $this->statusCode >= 200 && $this->statusCode < 300;
}
我正在使用 Symfony 构建 REST API。我处于一种情况,我想在 kernel.terminate
事件中执行一些操作,但我想确保在执行此操作之前已成功处理请求。
为此,因为我使用 REST 约定并且在发生错误时应该 return 适当的 HTTP 状态代码,所以我想检查响应 HTTP 状态。如果 HTTP 状态在 200 和 299 之间,方法 Symfony\Component\HttpFoundation\Response::isOk()
似乎更合适并且比手动检查更可读,但它 returns true
只有当 HTTP 状态等于 200 时。因为我 return 创建资源时的 201 状态代码,我不能为此使用它。
在 Github 上打开一个问题之前,我想知道是否有这种方法不能 return true
其他成功 HTTP 状态的原因?
谢谢!
您可以使用 Response
对象的 isSuccessful()
方法:
/**
* Is response successful?
*
* @return bool
*
* @final since version 3.2
*/
public function isSuccessful()
{
return $this->statusCode >= 200 && $this->statusCode < 300;
}