如何解决更改HTTP标头中的状态代码而不会影响Yii 1 Restful API中的返回数据
我想在Yii 1中返回带有HTTP错误代码的数据。因此,我使用以下方法获取数据。
$code = (0 == $ex->getCode()) ? (isset($ex->statusCode) ? $ex->statusCode : 500) : $ex->getCode();
$this->setOutputError($ex->getMessage());
$this->setOutputCode($code);
当我以这种方式使用API时,它返回带有200个错误代码的数据,如下所示
但是我想更改标头状态200,所以为此抛出了异常,然后输出数据也发生了变化。我只想更改标题状态。
$code = (0 == $ex->getCode()) ? (isset($ex->statusCode) ? $ex->statusCode : 500) : $ex->getCode();
$this->setOutputError($ex->getMessage());
$this->setOutputCode($code);
throw new CHttpException(400,'Bad Request');
解决方法
Yii 1.1没有响应抽象,您需要使用http_response_code()
来更改响应状态代码:
$code = (0 == $ex->getCode()) ? (isset($ex->statusCode) ? $ex->statusCode : 500) : $ex->getCode();
$this->setOutputError($ex->getMessage());
$this->setOutputCode($code);
http_response_code(400);
或者,您也可以使用header()
,但这比较棘手。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。