Symfony2 - 检查Accept HTTP标头中是否支持“application / json”

时间:2014-08-11 17:55:09

标签: json http symfony

我正在使用Symfony2框架构建REST API,

我使用“application / json”,

将响应发送给我的客户

如何检查HTTP请求标头中是否支持applcation / json?

谢谢。

3 个答案:

答案 0 :(得分:5)

检查getAcceptableContentTypes对象上的request方法。

$acceptsJsonContent = in_array('application/json', $request->getAcceptableContentTypes());

答案 1 :(得分:0)

当您的客户以精确格式请求回复时,应指定Accept:标头,请参阅HTTP/1.1 spec

答案 2 :(得分:0)

json请求的标头应该是这样的。

headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}

回到控制器中,您可以过滤请求以查看它是否通过xml / http内容。 (如Ajax)

if($request->isXmlHttpRequest())
{

    $result = json_encode($json);

    return new Response($result , 200 , array( 'Content-Type' => 'application/json' ));
}

希望这有帮助。

干杯!