Php 如何从Zend Framework 3中的响应中获得有效的JSON输出?
我正在为API编写一个客户端Php 如何从Zend Framework 3中的响应中获得有效的JSON输出?,php,json,zend-framework3,zend-http-client,Php,Json,Zend Framework3,Zend Http Client,我正在为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'
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响应对象的getContent()
方法的问题。它可能无法解码从请求中获取的内容。请看一看。这可能就是原因。我可能错了
因此,它的getBody()
方法对请求的内容进行解码。因此,请使用此方法而不是getContent()
希望这对你有帮助 响应对象的getContent()
方法的问题。它可能无法解码从请求中获取的内容。请看一看。这可能就是原因。我可能错了
因此,它的getBody()
方法对请求的内容进行解码。因此,请使用此方法而不是getContent()
希望这对你有帮助 非常感谢您的回答!我没有使用getBody()
,因为我信任IDE的自动完成功能。Zend\Http\Client#dispatch(…)
返回Zend\Stdlib\ResponseInterface
。我没有考虑它,当我只有<代码> GETEng内容(…)和<代码> GETMeta(…)<代码>时,我想,不再提供<代码> GESTORD(…)<代码>。但是可以肯定的是,dispatch(…)
返回的具体对象是Zend\Http\Response
,它提供了我需要的方法--getBody()
。现在它开始工作了。谢谢!非常感谢您的回答!我没有使用getBody()
,因为我信任IDE的自动完成功能。Zend\Http\Client#dispatch(…)
返回Zend\Stdlib\ResponseInterface
。我没有考虑它,当我只有<代码> GETEng内容(…)和<代码> GETMeta(…)<代码>时,我想,不再提供<代码> GESTORD(…)<代码>。但是可以肯定的是,dispatch(…)
返回的具体对象是Zend\Http\Response
,它提供了我需要的方法--getBody()
。现在它开始工作了。谢谢!
$data = $response->getBody();