我正在尝试将StackExchange api 的 V2.2与PHP一起使用。我正在将Symfony项目与 Kriswallsmith 的嗡嗡声库一起使用。
当我尝试打印 HTTP 请求的响应内容及其编码时,问题就来了。我已经在 StackOverflow 中阅读了很多与此问题相关的问题,但问题仍然存在。
这是我显示问题的部分代码:
echo "The url: ";
var_dump($url);
var_dump($response);
$content = $response->getContent();
echo "Json decode's content: ";
var_dump(json_decode($content, true));
echo "The error is";
switch(json_last_error()) {
case JSON_ERROR_DEPTH:
echo ' - Maximum stack depth exceeded';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
echo ' - Syntax error, malformed JSON';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - Invalid or malformed JSON';
break;
case JSON_ERROR_UTF8:
echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
break;
}
die();
这将返回以下内容:
如果你粘贴
https://api.stackexchange.com/2.2/answers?site=stackoverflow&sort=activity&
在浏览器中,它返回一个有效的 JSON。