Я пишу клиент для API …
use Zend\Http\Client; use Zend\Http\Request; use Zend\Json\Json; ... $request = new Request(); $request->getHeaders()->addHeaders([ 'Accept-Charset' => 'UTF-8', 'Accept' => 'application/hal+json', 'Content-Type' => 'application/hal+json; charset=UTF-8', ]); $apiAddress = 'http://my.project.tld/categories'; $request->setUri($apiAddress); $request->setMethod('GET'); $client = new Client(); $response = $client->dispatch($request); $data = $response->getContent();
… и получить сломанный JSON вот так:
1f9e <-- What is it? {"_links... \u043 <-- What is it? 1a6... tfoli <-- What is it? 0
Строка разделяется на пять строк:
1f9e
1a6
0
Почему я получаю дополнительные символы / строки? Как избежать этого, получить действительный выход JSON?
Проблема с методом getContent()
объекта ответа. Он не может декодировать содержимое, содержащееся в нем, из запроса. Пожалуйста, смотрите здесь . Это может быть причиной. Возможно, я ошибаюсь!
Таким образом, метод getBody()
выполняет задание декодирования для содержимого запроса. Поэтому, пожалуйста, используйте этот метод вместо getContent()
.
$data = $response->getBody();
Надеюсь, это поможет вам!