libcurl 获取http header
时间: 2023-10-14 07:05:13 浏览: 376
获取HTTP响应头可以使用libcurl提供的CURLOPT_HEADER选项,该选项可以让libcurl在执行HTTP请求时将响应头信息一并返回。以下是一个使用libcurl获取HTTP响应头的示例代码:
```c
#include <stdio.h>
#include <curl/curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Accept: application/json");
headers = curl_slist_append(headers, "Content-Type: application/json");
headers = curl_slist_append(headers, "Authorization: Token xxxxxxxxxxxx");
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/api");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_HEADER, 1L);
res = curl_easy_perform(curl);
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return 0;
}
```
在上面的示例中,`headers`是一个指向`curl_slist`结构体的指针,用于存储HTTP请求头信息。`curl_slist_append()`函数用于向`headers`中添加HTTP请求头信息。`CURLOPT_HTTPHEADER`选项用于将`headers`中的HTTP请求头信息传递给libcurl。`CURLOPT_HEADER`选项将响应头信息包含在响应体中返回,响应体和响应头之间用两个换行符隔开。
阅读全文