ฉันจะรับรหัสสถานะ HTTP ได้อย่างไร (เช่น 200 หรือ 500) หลังจากเรียก curl_easy_perform
ฉันจะรับรหัสสถานะ HTTP ได้อย่างไร (เช่น 200 หรือ 500) หลังจากเรียก curl_easy_perform
คำตอบ:
http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html
CURLINFO_RESPONSE_CODE ส่งตัวชี้ไปที่ long เพื่อรับรหัส HTTP หรือ FTP ที่ได้รับล่าสุด นี้ ตัวเลือกนี้รู้จักกันในชื่อ CURLINFO_HTTP_CODE ใน libcurl 7.10.7 และรุ่นก่อนหน้า นี้ จะเป็นศูนย์หากไม่ได้รับรหัสตอบกลับของเซิร์ฟเวอร์ สังเกตว่าก ควรอ่านคำตอบ 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
จากการดำเนินการ