php – 当标题存在时,从GET响应中解析JSON
作者:互联网
我正在尝试json_decode从我的服务器端API的GET请求收到的响应,但我得到一个空字符串.我是否正确地假设因为响应包含JSON解码器无法处理的所有头信息?这是我从服务器获得的完整响应:
HTTP/1.1 200 OK
Server: nginx/1.0.5
Date: Sun, 18 Mar 2012 19:44:43 GMT
Content-Type: application/json
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: Servlet/3.0; JBossAS-6
Content-Length: 97
{"pid":"162000798ab8481eaeb2b867e10f8849","uuid":"973b8722c75a4cacb9fd2316517587bb"}
在将响应发送到客户端之前,是否需要删除servlet中的标头?
解决方法:
是的,json_decode必须只传递JSON数据才能解码.由于您使用的是curl,因此您可以简单地将请求配置为不向您返回标题
curl_setopt($ch, CURLOPT_HEADER, false);
更新:如果您需要用于早期处理的标题,则上述内容不会删除它.但是,您可以通过利用响应的标题和正文之间存在双换行“分隔符”这一事实,随时轻松删除它们.使用像这样的爆炸将隔离身体:
list(,$body) = explode("\n\n", $response, 2);
标签:json,php,curl,http-get,servlet-3-0 来源: https://codeday.me/bug/20190613/1233862.html