0
當我們發送一個HTTP消息:如何使用libcurl檢測摘要身份驗證失敗?
res= curl_easy_perform(curl);
如何檢測從libcur認證失敗的情況下,該HTTP消息與錯誤的登錄名或密碼發送?
我檢查的res
成功和失敗的價值,我發現它= 0
當我們發送一個HTTP消息:如何使用libcurl檢測摘要身份驗證失敗?
res= curl_easy_perform(curl);
如何檢測從libcur認證失敗的情況下,該HTTP消息與錯誤的登錄名或密碼發送?
我檢查的res
成功和失敗的價值,我發現它= 0
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);