Mein Ziel mit dem folgenden Code ist es, mit curl festzustellen, ob die bereitgestellten url
und uidPwd
ausreichen, um eine Verbindung zur angegebenen URL herzustellen. Wenn die URL falsch ist, gibt curl_easy_perform
CANNOT_RESOLVE_HOST
zurück. Wenn die URL jedoch in Ordnung ist, gibt der Aufruf CURLE_OK
zurück, unabhängig davon, ob der Benutzer gültige Anmeldeinformationen eingegeben hat oder nicht. Ich verstehe, warum dies passiert, curl verbindet sich mit der angegebenen URL, unabhängig davon, ob die Credentials korrekt sind oder nicht (wenn sie nicht korrekt sind, anstatt die angeforderte Ressource zur Verfügung zu stellen, wird "Authentifizierung fehlgeschlagen" zurückgegeben). Meine Frage ist, gibt es eine Möglichkeit zu wissen, ob die Authentifizierung fehlgeschlagen ist mit nichts mehr als den Return-Code von 'curl_easy_perform'? Wenn nicht, was wäre der einfachste Weg, um dieses Problem zu lösen? Ich möchte nicht die Mühe machen, das zurückgegebene HTTP zu analysieren.Überprüfen von Benutzer-Credentials mit 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);