来自使用curl的ZF2 api调用的奇怪编码
发布时间:2020-12-14 01:15:23 所属栏目:Linux 来源:网络整理
导读:我从zf2 api调用中得到了一个奇怪的编码问题.我已经验证了api在内部工作,并且它应该发送回来的响应来自api例程,该例程采用图像文件并裁剪它: $result = new ViewModel(array('output'=$output,'response'=json_encode($response))); 在结果发送之前转储$res
我从zf2 api调用中得到了一个奇怪的编码问题.我已经验证了api在内部工作,并且它应该发送回来的响应来自api例程,该例程采用图像文件并裁剪它:
$result = new ViewModel(array('output'=>$output,'response'=>json_encode($response))); 在结果发送之前转储$result,如下所示: [output] => json [response] =>{"data":"http://dev.xxxxx.com/tools/files/temporary_files/f16da1965e4d0c487ae7692f4b51558b917c238e.1","status":"OK"} 但我回来的实际反应是这样的: ^_<8b>^H^@^@^@^@^@^@^C%íM ^B!^T^@à??^N?1?,:B<?I<82><8e><83>?<82><88>?^Dò[}o<96><80><80>-ìNt?B4(5^R>y*<93>F ¥?<?&¨÷:E.^U§ lG^_0^·?34 ¤7^ZU:G?,?5~é*h?μ^K^ú?^réNl^RDct???>_Id?'<83>^@^@^@ 以下是我使用curl调用api的方法: $client = new Client($api_url); $adapter = new Curl(); $adapter->setCurlOption(CURLOPT_SSL_VERIFYPEER,false); $client->setAdapter($adapter); $request = new Request(); $request->setUri($api_url); $request->setMethod(ZendHttpRequest::METHOD_POST); $request->setContent($postString); $response = $client->dispatch($request); $responseContent = $response->getContent(); 看起来编码的部分是$responseContent的转储.认为它可能是gzip,因为响应标题说内容类型是gzip,我已经尝试了各种解压缩调用,但无济于事.到底发生了什么事? 解决方法
内容使用gzip压缩.您需要在响应中使用getBody(),而不是getContent().
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |