Я пытаюсь использовать V2.2 of StackExchange api с PHP. Я использую проект Symfony с помощью Kriswallsmith's buzz библиотека.json_decode и StackExchange api
Проблема возникает, когда я пытаюсь распечатать содержимое ответа 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.
Это причина, но функция 'gzuncompress' все еще падала. Это правильный метод/ответ на мой вопрос. Спасибо;) http://stackoverflow.com/a/10105319/2359967 – 2014-09-03 15:55:23
@benatespina, ну, на самом деле HTTP-клиент должен сам разработать такие технические вещи: он может читать заголовки, не правда ли? – kix