php - 当 header 存在时从 GET 响应中解析 JSON

标签 php json curl http-get servlet-3.0

我正在尝试 json_decode我从对我的服务器端 API 的 GET 请求收到的响应,但我得到一个空字符串。我的假设是否正确,因为响应包含 JSON 解码器无法处理的所有 header 信息?这是我从服务器获得的完整响应:

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 中的 header ?

最佳答案

是的,json_decode 必须传递只是要解码的 JSON 数据。由于您使用的是 curl,因此您可以简单地将请求配置为不将 header 返回给您,例如

curl_setopt($ch, CURLOPT_HEADER, false);

更新:如果您需要用于早期处理的 header ,那么上面的内容不会削减它。但是,您可以随时轻松删除它们,方法是利用在响应的 header 和主体之间将有一个双换行符“定界符”这一事实。像这样使用 explode 将隔离主体:

list(,$body) = explode("\n\n", $response, 2);

关于php - 当 header 存在时从 GET 响应中解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9761767/

相关文章:

php - 上传时获取 php 数组中的所有文件名

php - 使用 CodeIgniter Framework for PHP 添加图像到 bootstrap jumbotron

Python,jsonpath_ng : Exception: Parse error at 1:4 near token ?(?)

javascript - 为 Google Charts API 设置 JSON 格式

git - 将 repo 下载为 zip 文件

azure - curl azure网站ftps连接被拒绝端口990

javascript - 告诉 PHP 后端浏览器已从前端 Angular 关闭

php - 无法将大型 html5 Canvas 发布到服务器?

java - 使用 Java 通过 TCP 发送 JSON 对象

Android:如何从 Zomato API 获取 JSON 对象?