对于200到299之间的HTTP状态,Response :: isOk()是否不应该返回true?

时间:2018-09-28 11:57:52

标签: symfony http-response-codes symfony-http-foundation

我正在使用Symfony构建REST API。我处于一种情况下,我想在kernel.terminate事件中执行一些操作,但是在执行此操作之前,我想确保已成功处理了请求。

为此,由于我使用REST约定,并且在发生错误时应返回适当的HTTP状态代码,因此我想检查响应HTTP状态。方法Symfony\Component\HttpFoundation\Response::isOk()似乎比较合适,并且比HTTP状态介于200和299之间的手动检查更具可读性,但是仅当HTTP状态等于200时,它才返回true。资源已创建,我不能为此使用它。

在Github上发布问题之前,我想知道这种方法是否有理由不为其他成功的HTTP状态返回true

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用isSuccessful()对象中的Response方法:

/**
 * Is response successful?
 *
 * @return bool
 *
 * @final since version 3.2
 */
public function isSuccessful()
{
    return $this->statusCode >= 200 && $this->statusCode < 300;
}