如何从Zend框架3响应一个有效的JSON输出?(How get a valid JSON outp

2019-09-29 02:29发布

我正在写一个客户端的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

该字符串是separaten到五线:

  • 1号线:只1f9e
  • 第二行:第一内容部分
  • 3D线:字符串1a6
  • 第四行:第二内容部分
  • 5号线: 0

为什么我会得到额外的符号/字符串? 如何避免这种情况得到有效的JSON输出?

Answer 1:

与该问题getContent()响应对象的方法。 它可能无法解码它在它从请求的内容。 请看看这里 。 这可能是原因。 我可能是错的!

所以getBody()的方法就可以做为请求的内容的解码工作。 所以,请使用此方法,而不是getContent()

$data = $response->getBody();

希望这会帮助你!



文章来源: How get a valid JSON output from the response in Zend Framework 3?