C++ Web API 接口代码:处理 gzip 压缩数据
以下是使用 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 库。
原文地址: https://www.cveoy.top/t/topic/nU1L 著作权归作者所有。请勿转载和采集!