Come ottengo il codice di stato HTTP (es. 200 o 500) dopo aver chiamato curl_easy_perform?
Risposte:
http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html
CURLINFO_RESPONSE_CODE Passa un puntatore a un long per ricevere l'ultimo codice HTTP o FTP ricevuto. Questo opzione era conosciuta come CURLINFO_HTTP_CODE in libcurl 7.10.7 e precedenti. Questo sarà zero se non è stato ricevuto alcun codice di risposta del server. Nota che a la risposta CONNECT del proxy dovrebbe essere letta con CURLINFO_HTTP_CONNECTCODE e non questo.
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'altra risposta è assolutamente corretta, ma vorrei anche aggiungere che potrebbe non essere saggio controllare manualmente il 200
codice di errore, il codice non è l'unico codice che significa successo.
Raccomanderei di utilizzare l'opzione libcurl CURLOPT_FAILONERROR che, una volta attivata, farà sì che libcurl consideri 400
e 500
-category gli stati un errore di richiesta e non tornerà CURLE_OK
dall'esecuzione.