Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在symfony中返回特定的状态代码(例如24)_Php_Http_Symfony1_Http Headers - Fatal编程技术网

Php 如何在symfony中返回特定的状态代码(例如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/

我需要返回symfony中API的疯狂http代码状态

我需要返回状态代码24我尝试使用:

$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