2012-12-07 93 views

回答

2

curl_easy_perform將返回0如果請求通過成功地去了。

錯誤的身份驗證通常會導致401未經授權的HTTP響應代碼。但是,cURL不會將其視爲請求錯誤。請求錯誤的一個示例是CURLE_URL_MALFORMAT,如果請求URL的格式不正確,則會返回該請求錯誤,這意味着該請求甚至沒有命中遠程服務器。

有些人可能會建議你使用CURLOPT_FAILONERROR使curl_easy_perform失敗,如果響應代碼大於或等於400。然而,libcurl的文檔明確警告您:

此方法不是故障安全有時會出現不成功的響應代碼,特別是涉及認證時(響應代碼401和407)。

正確的方法來檢查身份驗證錯誤是使用curl_easy_getinfo來獲取HTTP響應代碼,例如:

CURLcode res = curl_easy_perform(curl); 
long httpCode = 0; 
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &httpCode);