【发布时间】:2014-06-30 00:59:09
【问题描述】:
我正在尝试使用 Guzzle 使用 Stack Exchange API。我遇到了一个问题,我无法获取 JSON 响应:解析时显然失败了。
这是我的代码:
$client = new GuzzleHttp\Client();
$parameters = ['pagesize'=>'2','order'=>'desc','sort'=> 'activity','q'=>'laravel eloquent','site'=>'stackoverflow'];
$response = $client->get('http://api.stackexchange.com/2.2/search/advanced',['query' => $parameters ]);
Guzzle 创建的有效 URL is correct:如果您在浏览器中打开该链接,您会发现它工作正常并返回请求的数据。
但是,当尝试使用 $response->json() 访问 JSON 时,Guzzle 失败并出现此错误:
GuzzleHttp\Exception\ParseException
无法解析 JSON 数据:JSON_ERROR_UTF8 - 格式错误的 UTF-8 字符,可能编码不正确
再次阅读documentation后,我相信请求被压缩并且我没有传递适当的内容头。如果是这样,您能否告诉我应该传递哪个标头以获得正确的响应?
【问题讨论】:
-
我目前使用的是PHP 5.5.3版本
-
如果您使用wireshark 并查看确切的请求和响应怎么办?
-
尝试为 mac os 下载和安装wireshark,但没有响应。