¿Cómo obtengo el código de estado HTTP (por ejemplo, 200 o 500) después de llamar a curl_easy_perform?
Respuestas:
http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html
CURLINFO_RESPONSE_CODE Pase un puntero a un largo para recibir el último código HTTP o FTP recibido. Esta La opción se conocía como CURLINFO_HTTP_CODE en libcurl 7.10.7 y versiones anteriores. Esta será cero si no se ha recibido ningún código de respuesta del servidor. Tenga en cuenta que un La respuesta CONNECT del proxy debe leerse con CURLINFO_HTTP_CONNECTCODE y no esto.
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
}
La otra respuesta es absolutamente correcta, pero también me gustaría agregar que podría no ser prudente verificar el código de error a mano, el 200
código no es el único código que significa éxito.
Recomendaría usar la opción de libcurl CURLOPT_FAILONERROR que cuando se activa hará que libcurl considere 400
y los 500
estados de categoría una falla en la solicitud y no regrese CURLE_OK
de la ejecución.