Comment puis-je obtenir le code d’état HTTP (par exemple, 200 ou 500) après avoir appelé curl_easy_perform?
http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html
CURLINFO_RESPONSE_CODE Passer un pointeur sur une longue pour recevoir le dernier code HTTP ou FTP reçu. Ce L'option était connue sous le nom de CURLINFO_HTTP_CODE dans libcurl 7.10.7 et versions antérieures. Ce sera zéro si aucun code de réponse du serveur n'a été reçu. Notez qu'un La réponse CONNECT du proxy doit être lue avec CURLINFO_HTTP_CONNECTCODE et pas ça.
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 }
L’autre réponse est tout à fait correcte, mais je voudrais également append qu’il n’est peut-être pas judicieux de vérifier le code d’erreur à la main, le code 200
n’étant pas le seul à indiquer le succès.
Je recommande d’utiliser l’option libcurl CURLOPT_FAILONERROR qui, une fois activée, fera que les états de la catégorie 400
et 500
-category seront un échec de la requête et ne renverra pas CURLE_OK
de perform.