0

当我们发送一条 http 消息时:

res= curl_easy_perform(curl);

如果使用错误的登录名或密码发送 http 消息,如何检测 libcur 的身份验证失败?

我检查了res成功和失败的值,发现它= 0

4

1 回答 1

2

curl_easy_perform0如果请求成功通过,将返回。

错误的身份验证通常会导致 401 Unauthorized HTTP 响应代码。但是,cURL 不会将其视为请求错误。请求错误的一个示例是CURLE_URL_MALFORMAT,如果您的请求 URL 格式不正确,则会返回该错误,这意味着该请求甚至没有到达远程服务器。

如果响应代码大于或等于 400,有些人可能会建议您使用CURLOPT_FAILONERRORmake 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);
于 2012-12-07T18:20:16.497 回答