【发布时间】:2016-05-13 17:09:54
【问题描述】:
我使用以下代码的目标是使用 curl 来确定提供的 url 和 uidPwd 是否足以连接到提供的 URL。如果 url 错误,curl_easy_perform 返回CANNOT_RESOLVE_HOST。但是,如果 url 正常,则无论用户是否提供有效凭据,调用都会返回 CURLE_OK。我理解为什么会发生这种情况,无论凭据是否正确,curl 都会连接到提供的 url(如果它们不正确而不是提供请求的资源,它会返回相当于“身份验证失败”的内容)。我的问题是,有没有办法知道身份验证是否失败,只使用'curl_easy_perform'的返回码?如果没有,解决这个问题的最简单方法是什么?我不想麻烦解析返回的HTTP。
curl_easy_setopt(curlHandle, CURLOPT_URL, url);
curl_easy_setopt(curlHandle, CURLOPT_USERPWD, uidPwd);
curl_easy_setopt(curlHandle, CURLOPT_HTTPAUTH, (long)CURLAUTH_ANY);
curl_easy_setopt(curlHandle, CURLOPT_WRITEFUNCTION, &BJConnection::writefunc);
curl_easy_setopt(curlHandle, CURLOPT_WRITEDATA, &s);
returnCode = curl_easy_perform(curlHandle);
assert(returnCode == CURLE_OK);
【问题讨论】: