2008-11-14 45 views
76

Làm cách nào để nhận mã trạng thái HTTP (ví dụ: 200 hoặc 500) sau khi gọi curl_easy_perform?Mã trạng thái Http với libcurl?

+7

câu hỏi hay. một số khác có thể là, cách nhận thông báo trạng thái .. :) – mykhal

Trả lời

113

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 
} 
1

Câu trả lời khác là hoàn toàn đúng, nhưng tôi cũng muốn nói thêm rằng nó có thể không được khôn ngoan để kiểm tra mã lỗi bằng tay, mã 200 không phải là duy nhất mã có nghĩa là thành công.

Tôi muốn recoment sử dụng tùy chọn libcurl CURLOPT_FAILONERROR rằng khi kích hoạt sẽ làm cho libcurl xem xét 400500 trạng thái -Danh mục một thất bại yêu cầu và sẽ không quay trở lại CURLE_OK từ thực hiện.

Các vấn đề liên quan