Php 如何在symfony中返回特定的状态代码(例如24)
我需要返回symfony中API的疯狂http代码状态 我需要返回状态代码24我尝试使用:Php 如何在symfony中返回特定的状态代码(例如24),php,http,symfony1,http-headers,Php,Http,Symfony1,Http Headers,我需要返回symfony中API的疯狂http代码状态 我需要返回状态代码24我尝试使用: $this->getResponse()->setStatusCode('24'); 但我总是收到回复代码500 当我尝试返回“正常”状态代码时,如404403: $this->getResponse()->setStatusCode('403'); 没问题 你知道为什么吗?我猜没有 24岁 Symfony可能会对其进行内部检查 为了避开它,你可以做 header('HTTP/
$this->getResponse()->setStatusCode('24');
但我总是收到回复代码500
当我尝试返回“正常”状态代码时,如404403:
$this->getResponse()->setStatusCode('403');
没问题
你知道为什么吗?我猜没有 24岁 Symfony可能会对其进行内部检查 为了避开它,你可以做
header('HTTP/1.0 24');
我找到了一个解决方案,它必须有3个数字
$this->getResponse()->setStatusCode('024');
在头函数中也是如此
header('HTTP/1.0 024');
024是无效的HTTP代码(这与“未定义”不同)。有效的HTTP代码在100-599之间。我看到这个问题被标记为,但是我的答案是在Symfony 2.8上测试的。Symfony 1.X也可能有类似的解决方案
当使用
$response->setStatusCode()
设置响应的状态代码时,Symfony会根据提供的状态代码执行一个有效的设置,具体来说,它在100到600之间:
public function isInvalid()
{
return $this->statusCode < 100 || $this->statusCode >= 600;
}
使用此类,而不是获取标准的响应
:
/**
* @Route("/", name="homepage")
*/
public function indexAction(Request $request)
{
$response = new NewResponse();
$response->setStatusCode(24);
return $response;
}
导致获取您要查找的状态代码:
$ curl -I 127.0.0.1:8000
HTTP/1.1 24 unknown status
Host: 127.0.0.1:8000
Connection: close
X-Powered-By: PHP/5.6.10
Cache-Control: no-cache
Content-Type: text/html; charset=UTF-8
X-Debug-Token: 189e2d
X-Debug-Token-Link: /_profiler/189e2d
Date: Fri, 29 Jan 2016 22:23:29 GMT
$ curl -I 127.0.0.1:8000
HTTP/1.1 24 unknown status
Host: 127.0.0.1:8000
Connection: close
X-Powered-By: PHP/5.6.10
Cache-Control: no-cache
Content-Type: text/html; charset=UTF-8
X-Debug-Token: 189e2d
X-Debug-Token-Link: /_profiler/189e2d
Date: Fri, 29 Jan 2016 22:23:29 GMT