PHP Curl 无法识别的内容编码类型。 libcurl 理解 deflate、gzip 内容编码

问题描述 投票:0回答:1

当我向通过 Rapid API 购买的 API 发送请求时,我遇到了这个问题。

错误:无法识别的内容编码类型。 libcurl 理解 deflate、gzip 内容编码。

$curl = curl_init();

        curl_setopt_array($curl, [
            CURLOPT_URL => "https://songstats.p.rapidapi.com/artists/info?spotify_artist_id=2h93pZq0e7k5yf4dywlkpM&songstats_artist_id=vxk62ige",
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "GET",
            CURLOPT_HTTPHEADER => [
                "X-RapidAPI-Host: songstats.p.rapidapi.com",
                "X-RapidAPI-Key: MY_API_KEY"
            ],
        ]);
        
        $response = curl_exec($curl);
        $err = curl_error($curl);
        
        curl_close($curl);
        
        if ($err) {
            echo "cURL Error #:" . $err;
        } else {
            echo $response;
        }
        exit;

`

我想在提出请求后获得艺术家的统计数据

php php-curl
1个回答
1
投票

要解决此问题,您可以在 cURL 选项中显式指定接受的编码。只需将以下行添加到您的 cURL 选项中即可:

curl_setopt($curl, CURLOPT_ENCODING, 'gzip, deflate');

这是修改后的代码:

$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => "https://songstats.p.rapidapi.com/artists/info?spotify_artist_id=2h93pZq0e7k5yf4dywlkpM&songstats_artist_id=vxk62ige",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => 'gzip, deflate', // Explicitly set accepted encodings
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => [
        "X-RapidAPI-Host: songstats.p.rapidapi.com",
        "X-RapidAPI-Key: MY_API_KEY"
    ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
    echo "cURL Error #:" . $err;
} else {
    echo $response;
}
exit;

通过将 CURLOPT_ENCODING 设置为“gzip, deflate”,您可以告诉 cURL 您的客户端可以处理使用 gzip 或 deflate 编码压缩的响应。这应该可以解决您面临的无法识别的内容编码问题。

© www.soinside.com 2019 - 2024. All rights reserved.