如何从 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
字符串分为五行:
- 第一行:仅
1f9e
- 第二行:第一个内容部分
- 3d 行:字符串
1a6
- 第4行:第二个内容部分
- 第 5 行:
0
为什么我会得到额外的 symbols/strings?如何避免获得有效的 JSON 输出?
响应对象的 getContent()
方法有问题。它可能不会解码从请求中获取的内容。请看一下here。这可能是原因。我可能错了!
所以它的getBody()
方法对请求的内容进行解码工作。所以请使用此方法代替 getContent()
.
$data = $response->getBody();
希望对您有所帮助!
我正在为 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
- 第二行:第一个内容部分
- 3d 行:字符串
1a6
- 第4行:第二个内容部分
- 第 5 行:
0
为什么我会得到额外的 symbols/strings?如何避免获得有效的 JSON 输出?
响应对象的 getContent()
方法有问题。它可能不会解码从请求中获取的内容。请看一下here。这可能是原因。我可能错了!
所以它的getBody()
方法对请求的内容进行解码工作。所以请使用此方法代替 getContent()
.
$data = $response->getBody();
希望对您有所帮助!