You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Keepa API返回乱码数据,寻求技术解决方案

问题原因

Keepa API 默认返回 gzip 压缩格式的响应数据,但你的PHP CURL请求未配置自动解压压缩内容的选项,导致原始压缩数据直接被输出,出现乱码。

解决方案

在CURL请求中添加CURLOPT_ENCODING选项,指定接受gzip编码并自动解压响应内容。

修改后的代码

更新你的CallAPI函数,添加gzip解压支持:

public function CallAPI($method, $url, $data = false)
{
    $curl = curl_init();

    switch ($method)
    {
        case "POST":
            curl_setopt($curl, CURLOPT_POST, 1);

            if ($data)
                curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
            break;
        case "PUT":
            curl_setopt($curl, CURLOPT_PUT, 1);
            break;
        default:
            if ($data)
                $url = sprintf("%s?%s", $url, http_build_query($data));
    }

    // Optional Authentication:
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    // 添加gzip解压支持
    curl_setopt($curl, CURLOPT_ENCODING, 'gzip');

    $result = curl_exec($curl);

    curl_close($curl);

    return $result;
}
额外说明
  • 确保你的PHP环境已启用zlib扩展(大多数默认环境都已启用),若未启用,需在php.ini中开启extension=zlib。
  • 添加该选项后,CURL会自动处理服务器返回的gzip压缩内容,将其解压为可读的JSON或文本数据。

内容的提问来源于stack exchange,提问作者Rohit pippale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 09:05:42