¿Código de estado Http con libcurl?

2 minutos de lectura

¿Codigo de estado Http con libcurl
twk

¿Cómo obtengo el código de estado HTTP (por ejemplo, 200 o 500) después de llamar a curl_easy_perform?

  • buena pregunta. otro podría ser, cómo obtener un mensaje de estado .. 🙂

    – mijal

    27 de abril de 2010 a las 17:07

¿Codigo de estado Http con libcurl
Vinko Vrsalovic

http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html

CURLINFO_RESPONSE_CODE

Pass a pointer to a long to receive the last received HTTP or FTP code. This
option was known as CURLINFO_HTTP_CODE in libcurl 7.10.7 and earlier. This 
will be zero if no server response code has been received. Note that a 
proxy's CONNECT response should be read with CURLINFO_HTTP_CONNECTCODE 
and not this. 
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 tal vez no sea prudente verificar el código de error a mano, el 200 El código no es el único código que significa éxito.

Recomiendo usar la opción libcurl CURLOPT_FAILONERROR que cuando se active hará que libcurl considere 400 y 500 -la categoría indica un error de solicitud y no regresará CURLE_OK de realizar

  • Como una extensión a esto, dependiendo de las opciones configuradas, hay otros códigos que no son de la “serie 200” que son un éxito, aunque con el entendimiento de que se necesita más trabajo, dos de los más conocidos son 301 y 302. Ciertamente curl puede ser configurado para manejarlos automáticamente, pero puede haber casos en los que la aplicación quiera manejarlos por sí misma. Una posibilidad podría ser cuando https:// está en uso con la autenticación del cliente y se necesita una cadena de certificados completamente nueva para el destino del resultado 301/302.

    – dnuff

    13 de enero de 2019 a las 1:55

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad