Як отримати код стану HTTP (наприклад, 200 або 500) після виклику curl_easy_perform?
Відповіді:
http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html
CURLINFO_RESPONSE_CODE Передайте вказівник на довгий для отримання останнього отриманого коду HTTP або FTP. Це Опція була відома як CURLINFO_HTTP_CODE у libcurl 7.10.7 та раніше. Це буде нулем, якщо код відповіді сервера не отримано. Зверніть увагу, що a Відповідь CONNECT проксі слід читати з CURLINFO_HTTP_CONNECTCODE а не це.
curl_code = curl_easy_perform (session);
long http_code = 0;
curl_easy_getinfo (session, CURLINFO_RESPONSE_CODE, &http_code);
if (http_code == 200 && curl_code != CURLE_ABORTED_BY_CALLBACK)
{
//Succeeded
}
else
{
//Failed
}
Інша відповідь є абсолютно правильною, але я хотів би також додати, що перевіряти код помилки вручну може бути нерозумно, 200
код - не єдиний код, який означає успіх.
Я б погодився використовувати параметр libcurl CURLOPT_FAILONERROR, який при активації змусить libcurl розглядати 400
і 500
-category статуси запиту про помилку і не повертатиметься CURLE_OK
від виконання.