加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

来自使用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().

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读