以下是使用 C++ 访问 Web API 的接口代码,处理 gzip 压缩的数据类型:

#include <iostream>
#include <curl/curl.h>
#include <string>

// 回调函数处理响应数据
size_t handle_response(char* contents, size_t size, size_t nmemb, void* userdata)
{
    std::string* response = (std::string*) userdata;
    response->append(contents, size * nmemb);
    return size * nmemb;
}

int main()
{
    // 初始化 curl
    curl_global_init(CURL_GLOBAL_DEFAULT);
    CURL* curl = curl_easy_init();
    if (!curl) {
        std::cerr << "Failed to initialize curl" << std::endl;
        return 1;
    }

    // 设置要获取的 URL
    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/api");

    // 设置 accept-encoding 头部处理 gzip 响应
    curl_easy_setopt(curl, CURLOPT_ACCEPT_ENCODING, "gzip");

    // 设置回调函数处理响应数据
    std::string response;
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, handle_response);
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);

    // 执行请求
    CURLcode res = curl_easy_perform(curl);
    if (res != CURLE_OK) {
        std::cerr << "Failed to perform request: " << curl_easy_strerror(res) << std::endl;
        return 1;
    }

    // 打印响应数据
    std::cout << "Response: " << response << std::endl;

    // 清理 curl
    curl_easy_cleanup(curl);
    curl_global_cleanup();

    return 0;
}

在上面的代码中,我们使用 CURL 库来处理 HTTP 请求和响应。我们设置了 CURLOPT_ACCEPT_ENCODING 选项来处理 gzip 压缩的响应数据类型。我们还设置了一个回调函数来处理响应数据,并将其存储在 response 字符串中。最后,我们打印了响应数据,并清理了 CURL 库。

C++ Web API 接口代码:处理 gzip 压缩数据

原文地址: https://www.cveoy.top/t/topic/nU1L 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录