Curl_easy_perform'u çağırdıktan sonra HTTP durum kodunu (ör. 200 veya 500) nasıl alabilirim?
Yanıtlar:
http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html
CURLINFO_RESPONSE_CODE Son alınan HTTP veya FTP kodunu almak için uzun bir işaretçiye bir işaretçi iletin. Bu seçenek libcurl 7.10.7 ve öncesinde CURLINFO_HTTP_CODE olarak biliniyordu. Bu hiçbir sunucu yanıt kodu alınmadıysa sıfır olacaktır. Bir proxy'nin CONNECT yanıtı CURLINFO_HTTP_CONNECTCODE ile okunmalıdır ve bu değil.
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
}
Diğer cevap kesinlikle doğrudur, ancak hata kodunu elle kontrol etmenin akıllıca olmayabileceğini de eklemek isterim, 200
kod, başarıyı gösteren tek kod değildir.
Libcurl seçeneği CURLOPT_FAILONERROR'u kullanarak, etkinleştirildiğinde libcurl'un bir istek hatası olarak kabul edeceğini 400
ve 500
-category durumlarının bir istek hatası olacağını ve perform'den geri dönmeyeceğini telafi ederim CURLE_OK
.