在不影响 Yii 1 return 数据的情况下更改 HTTP header 中的状态代码 Restful API
Change status code in HTTP header without affecting return data in Yii 1 Restful API
我想return在Yii 1中获取带有HTTP错误码的数据,所以我使用了下面的方式获取数据。
$code = (0 == $ex->getCode()) ? (isset($ex->statusCode) ? $ex->statusCode : 500) : $ex->getCode();
$this->setOutputError($ex->getMessage());
$this->setOutputCode($code);
当我这样使用它时 API returns 数据有 200 错误代码如下
但是我想改变header状态200,所以我为此抛出异常,然后输出数据也改变了。我只想更改 header 状态。
$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()
,但这更棘手。
我想return在Yii 1中获取带有HTTP错误码的数据,所以我使用了下面的方式获取数据。
$code = (0 == $ex->getCode()) ? (isset($ex->statusCode) ? $ex->statusCode : 500) : $ex->getCode();
$this->setOutputError($ex->getMessage());
$this->setOutputCode($code);
当我这样使用它时 API returns 数据有 200 错误代码如下
但是我想改变header状态200,所以我为此抛出异常,然后输出数据也改变了。我只想更改 header 状态。
$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()
,但这更棘手。