【问题标题】:How to use custom (non-standard) HTTP status codes in ZF2如何在 ZF2 中使用自定义(非标准)HTTP 状态码
【发布时间】:2014-11-25 14:30:38
【问题描述】:

我正在尝试在 Zend Framework 2 应用程序中发送带有自定义 http 状态代码 498 - Token Invalid 的响应。这显然不能正常工作,因为标准 Zend 响应类不允许自定义 http 代码。

所以我创建了自己的响应类来处理这个 http 代码并在我的操作中返回它:

$response = new CustomResponse();
$response->setStatusCode(498); //basic zend response objects throws InvalidArgumentException

return $response;

虽然没有抛出异常,但是浏览器说它返回了 500 错误。

如何让它工作?

【问题讨论】:

    标签: http zend-framework2 httpresponse


    【解决方案1】:

    ZF2 中的HTTP Response 类严格遵循RFC 2616 的状态码。这是一个很好的做法,当您传递未知状态码时,setStatusCode() 方法会抛出异常。

    无论如何,您无需创建自定义响应对象即可返回非标准的 HTTP 状态代码。有一个setCustomStatusCode() 方法可以满足这个要求。

    在任何控制器动作中试试这个:

    public function myAction()
    {
       $response = $this->getResponse();
       $response->setCustomStatusCode(498);
       $response->setReasonPhrase('Invalid token!');
       return $response;
    }
    

    【讨论】:

    • 这是很棒的东西,伙计!我应该更准确地分析响应类...
    猜你喜欢
    • 2014-11-11
    • 2015-09-10
    • 2018-05-07
    • 2014-08-01
    • 1970-01-01
    • 2011-03-15
    • 2021-12-02
    • 2019-05-21
    • 2012-11-19
    相关资源
    最近更新 更多