HTTP-Statuscode mit libcurl?

Lesezeit: 1 Minute

Benutzeravatar von twk
zweiwk

Wie erhalte ich den HTTP-Statuscode (zB 200 oder 500) nach dem Aufruf von curl_easy_perform?

  • gute Frage. Eine andere könnte sein, wie man eine Statusmeldung erhält .. 🙂

    – mykhal

    27. April 2010 um 17:07 Uhr

Benutzeravatar von Vinko Vrsalovic
Vinko Vrsalović

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
}

Die andere Antwort ist absolut richtig, aber ich möchte auch hinzufügen, dass es möglicherweise nicht ratsam ist, den Fehlercode von Hand zu überprüfen 200 Code ist nicht der einzige Code, der Erfolg bedeutet.

Ich würde die Verwendung der Option libcurl empfehlen CURLOPT_FAILONERROR dass, wenn aktiviert, libcurl berücksichtigen wird 400 und 500 -category gibt einen Anforderungsfehler an und wird nicht zurückgegeben CURLE_OK von durchführen.

  • Als Erweiterung dazu gibt es, abhängig von den eingestellten Optionen, andere Codes außerhalb der „200er-Serie“, die ein Erfolg sind, wenn auch mit dem Verständnis, dass mehr Arbeit erforderlich ist. Zwei der bekanntesten sind 301 und 302. Sicherlich kann Curl sein eingerichtet, um diese automatisch zu handhaben, aber es kann Fälle geben, in denen die Anwendung sie selbst handhaben möchte. Eine Möglichkeit könnte sein, wenn https:// mit Client-Authentifizierung verwendet wird und eine völlig neue Zertifikatskette für das Ziel des 301 / 302-Ergebnisses benötigt wird.

    – dgnuff

    13. Januar 2019 um 1:55 Uhr

1420890cookie-checkHTTP-Statuscode mit libcurl?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy