curl_easy_perform을 호출 한 후 HTTP 상태 코드 (예 : 200 또는 500)를 어떻게 얻습니까?
답변:
http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html
CURLINFO_RESPONSE_CODE 마지막으로받은 HTTP 또는 FTP 코드를 받으려면 long에 대한 포인터를 전달하십시오. 이 옵션은 libcurl 7.10.7 이전 버전에서 CURLINFO_HTTP_CODE로 알려졌습니다. 이 서버 응답 코드가 수신되지 않으면 0이됩니다. 참고 프록시의 CONNECT 응답은 CURLINFO_HTTP_CONNECTCODE로 읽어야합니다. 그리고 이것은 아닙니다.
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
}
다른 대답은 절대적으로 정확하지만 오류 코드를 직접 확인하는 것이 현명하지 않을 수도 있으며 200
코드가 성공을 나타내는 유일한 코드는 아니라는 점을 덧붙이고 싶습니다 .
libcurl 옵션 CURLOPT_FAILONERROR 를 사용하면 활성화되면 libcurl 이 요청 실패로 간주 400
하고 500
-category 상태를 요청 실패로 간주 하고 CURLE_OK
수행에서 반환하지 않을 것 입니다.