【问题标题】:Receiving garbage data from specific URL using libcurl使用 libcurl 从特定 URL 接收垃圾数据
【发布时间】:2016-01-05 17:35:02
【问题描述】:

我正在尝试使用 libcurl 从 URL 获取 HTML。除了this one,下面的代码在我尝试过的所有网站上都有效。

该站点的输出如下所示:

�[ks�ƒ��T�?��MH�D��C�D�.ˏ8weGe)�M%Y

我在 OS X 上使用 Clang

C 代码

#include <stdio.h>
#include <curl/curl.h>

int main(void) {
    CURL *curl;  // Curl Handle
    curl = curl_easy_init();
    CURLcode result;
    curl_global_init(CURL_GLOBAL_DEFAULT);
    curl_easy_setopt(curl, CURLOPT_URL,
        "http://mangafox.me/manga/waltz/v01/c001/1.html");
    result = curl_easy_perform(curl);
    curl_easy_cleanup(curl);
    curl_global_cleanup();
    return 0; 
}

【问题讨论】:

    标签: c macos encoding libcurl


    【解决方案1】:

    该站点正在发送使用 gzip 压缩的响应——您可以通过查看回复的标题来判断——它们包括:

    Content-Encoding: gzip
    

    【讨论】:

    • 谢谢,这解决了我的问题。您必须添加 curl_easy_setopt(curl, CURLOPT_ENCODING, "gzip");在第一个 curl_easy_setopt 之后
    • 官方选项名称是 CURLOPT_ACCEPT_ENCODING,文档在这里:curl.haxx.se/libcurl/c/CURLOPT_ACCEPT_ENCODING.html
    猜你喜欢
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多