Comment obtenir le code d'état HTTP (par exemple 200 ou 500) après avoir appelé curl_easy_perform?
Réponses:
http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html
CURLINFO_RESPONSE_CODE Passez un pointeur vers un long pour recevoir le dernier code HTTP ou FTP reçu. Ce L'option était connue sous le nom de CURLINFO_HTTP_CODE dans la libcurl 7.10.7 et les versions antérieures. Ce sera égal à 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 ajouter qu'il n'est peut-être pas judicieux de vérifier le code d'erreur à la main, le 200
code n'est pas le seul code qui signifie le succès.
Je recommande d'utiliser l'option libcurl CURLOPT_FAILONERROR qui, lorsqu'elle est activée, fera que libcurl considère 400
et 500
que les statuts de catégorie sont un échec de la demande et ne reviendra pas CURLE_OK
de perform.