当我们发送一条 http 消息时:
res= curl_easy_perform(curl);
如果使用错误的登录名或密码发送 http 消息,如何检测 libcur 的身份验证失败?
我检查了res
成功和失败的值,发现它= 0
curl_easy_perform
0
如果请求成功通过,将返回。
错误的身份验证通常会导致 401 Unauthorized HTTP 响应代码。但是,cURL 不会将其视为请求错误。请求错误的一个示例是CURLE_URL_MALFORMAT
,如果您的请求 URL 格式不正确,则会返回该错误,这意味着该请求甚至没有到达远程服务器。
如果响应代码大于或等于 400,有些人可能会建议您使用CURLOPT_FAILONERROR
make fail。但是,libcurl 文档明确警告您:curl_easy_perform
此方法不是万无一失的,有时会出现不成功的响应代码,尤其是在涉及身份验证时(响应代码 401 和 407)。
检查身份验证错误的正确方法是使用curl_easy_getinfo
获取 HTTP 响应代码,例如:
CURLcode res = curl_easy_perform(curl);
long httpCode = 0;
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &httpCode);