如何从 Zend Framework 3 的响应中获得有效的 JSON 输出?

How get a valid JSON output from the response in Zend Framework 3?

我正在为 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

字符串分为五行:

为什么我会得到额外的 symbols/strings?如何避免获得有效的 JSON 输出?

响应对象的 getContent() 方法有问题。它可能不会解码从请求中获取的内容。请看一下here。这可能是原因。我可能错了!

所以它的getBody()方法对请求的内容进行解码工作。所以请使用此方法代替 getContent().

$data = $response->getBody();

希望对您有所帮助!