LINUX.ORG.RU

libCURL: возвращать http код ошибки сервера при запросе


0

0

Есть простой код, использующий curl_easy интерфейс.

#define DST_HOST "http://somewhere"
...
CURL* handle = NULL;
curl_global_init(CURL_GLOBAL_ALL);
handle = curl_easy_init();
curl_easy_setopt(handle, CURLOPT_URL, DST_HOST);
curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, readfunc);
printf("code = %d\n", curl_easy_perform(handle));
curl_easy_cleanup(handle);


curl_easy_perform() возвращает внутренний код результата работы libcurl.
А как средствами самого libcurl определить, какой код 
ошибки выдал удаленный http-сервер: 403, 404 или еще какой-нибудь? 

Спасибо.
anonymous

Пока нашел вот такую штуку. Однако, не особо дескриптивно :).

CURLOPT_FAILONERROR

A non-zero parameter tells the library to fail silently if the HTTP code returned is equal to or larger than 400. The default action would be to return the page normally, ignoring that code.

anonymous
()
Ответ на: комментарий от anonymous

Вопрос снят. Спасибо за внимание :).

CURLOPT_HEADERFUNCTION

The header callback will be called once for each header and only complete header lines are passed on to the callback.

И, непосредственно, парсить сам header, что бы получить код ошибки.

anonymous
()
Ответ на: комментарий от anonymous

>> И, непосредственно, парсить сам header, что бы получить код ошибки.

Можно проще: curl_easy_getinfo + CURLINFO_RESPONSE_CODE.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.