libcurl增加HTTP header 和 POST之后获取返回数据
flyfish
static size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream)
{
size_t written = fwrite(ptr, size, nmemb, (FILE *)stream);
return written;
}- 1
- 2
- 3
- 4
- 5
main函数
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://www.example.com");
struct curl_slist *headers = NULL;
//增加HTTP header
headers = curl_slist_append(headers, "Accept:application/json");
headers = curl_slist_append(headers, "Content-Type:application/json");
headers = curl_slist_append(headers, "charset:utf-8");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "post的内容");
static const char *pagefilename = "respone.txt";
FILE *pagefile;
//写入到文件
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
fopen_s(&pagefile,pagefilename, "wb");
if (pagefile)
{
curl_easy_setopt(curl, CURLOPT_WRITEDATA, pagefile);
res = curl_easy_perform(curl);
if (res != CURLE_OK)
{
fprintf(stderr, "curl_easy_perform() failed: %s\n",curl_easy_strerror(res));
}
fclose(pagefile);
}
curl_easy_cleanup(curl);
}
curl_global_cleanup();

本文介绍如何使用libcurl库来发起带有自定义HTTP头和POST数据的HTTP请求,并将服务器响应保存到本地文件中。代码示例展示了设置libcurl选项、指定请求参数及处理响应数据的具体步骤。
1884

被折叠的 条评论
为什么被折叠?



