CURLINFO_RESPONSE_CODE
Передайте указатель на long, чтобы получить последний полученный код HTTP или FTP. Этот
опция была известна как CURLINFO_HTTP_CODE в libcurl 7.10.7 и ранее. Этот
будет равно нулю, если код ответа сервера не был получен. Обратите внимание, что
ответ CONNECT прокси должен быть прочитан с CURLINFO_HTTP_CONNECTCODE
а не это.
Другой ответ абсолютно правильный, но я также хотел бы добавить, что, возможно, нецелесообразно проверять код ошибки вручную, 200код - не единственный код, который означает успех.
Я бы рекомендовал использовать опцию libcurl CURLOPT_FAILONERROR, которая при активации заставит libcurl рассматривать 400и 500-category статусы как сбой запроса и не будет возвращаться CURLE_OKиз выполнения.
В дополнение к этому, в зависимости от установленных опций, есть другие коды, не относящиеся к «серии 200», которые являются успешными, хотя и с пониманием того, что требуется дополнительная работа. Два из самых известных - это 301 и 302. Конечно, завиток может быть настроен для их автоматической обработки, но могут быть случаи, когда приложение может захотеть обработать их само. Одна из возможностей может заключаться в том, что https: // используется с аутентификацией клиента, и для цели результата 301/302 требуется совершенно новая цепочка сертификатов.
Ответы:
http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html
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
из выполнения.источник