Вы можете получить заголовок ответа, если используете curl_easy_setopt(curl, CURLOPT_HEADER, 1)
.
Но write_callback
можно вызывать много раз
Просто попробуйте это.
curl_test.c
#include <stdio.h>
#include <curl/curl.h>
#include <stdlib.h>
#include <unistd.h>
size_t write_func(void *ptr, size_t size, size_t nmemb, void *userdata)
{
//write(STDOUT_FILENO, ptr, size*nmemb);
printf("write_func\n");
return size * nmemb;
}
int main(int argv, char *argc[])
{
CURL *curl;
if (argv != 2) {
return 0;
}
curl = curl_easy_init();
if (!curl) {
fprintf(stderr, "curl_easy_init error");
}
curl_easy_setopt(curl, CURLOPT_URL, argc[1]);
curl_easy_setopt(curl, CURLOPT_HEADER, 1);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_func);
curl_easy_perform(curl);
curl_easy_cleanup(curl);
return 0;
}
CMD:
gcc curl_test.c -o curl_test -lcurl && ./curl_test www.google.com