私の目標は以下のコードで、curlを使用して、提供されたURLに接続するにはurl
とuidPwd
で十分かどうかを判断することです。 URLが間違っている場合、curl_easy_perform
はCANNOT_RESOLVE_HOST
を返します。ただし、URLが正常であれば、ユーザーは有効な資格情報を提供しているかどうかにかかわらず、CURLE_OK
を返します。私は、なぜこれが起こっているのか理解しています。カールは、資格情報が正しいかどうかにかかわらず、提供されたURLに接続しています(要求されたリソースを提供するのではなく、 "認証に失敗しました"私の質問は、認証が 'curl_easy_perform'の戻りコード以上で失敗したかどうかを知る方法はありますか?もしそうでなければ、この問題を解決する最も簡単な方法は何でしょうか?私は返されたHTTPを解析する手間を掛けたくありません。libcurlを使ってユーザーの信頼性を確認する
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);