Làm cách nào để lấy mã trạng thái HTTP (ví dụ: 200 hoặc 500) sau khi gọi curl_easy_perform?
Câu trả lời:
http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html
CURLINFO_RESPONSE_CODE Chuyển một con trỏ tới long để nhận mã HTTP hoặc FTP nhận được cuối cùng. Điều này tùy chọn được gọi là CURLINFO_HTTP_CODE trong libcurl 7.10.7 trở về trước. Điều này sẽ bằng 0 nếu không nhận được mã phản hồi của máy chủ. Lưu ý rằng một phản hồi CONNECT của proxy phải được đọc bằng CURLINFO_HTTP_CONNECTCODE và không phải cái này.
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
}
Câu trả lời khác là hoàn toàn chính xác, nhưng tôi cũng muốn nói thêm rằng có thể không khôn ngoan nếu kiểm tra mã lỗi bằng tay, 200
mã không phải là mã duy nhất báo hiệu 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 400
và 500
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.