我試圖使用使用NTLM身份驗證的代理來訪問服務器。 問題是,即使我給出正確的憑據(我已經用Firefox和代理,端口,用戶名和密碼測試了它們),我收到407(代理需要身份驗證)。使用NTLM通過cURL進行代理驗證即使使用正確的憑據也會返回407
我試過使用CURLAUTH_NTLM,CURLAUTH_NTLM和兩者的邏輯組合,但仍然沒有。
我已經使用最新版本的cURL(7.42.1)和最新版本的openSSL(1.0.2)。
任何人都可以告訴我我做錯了什麼嗎?
這是我的C/C+++代碼:
int _main()
{
CURL *hCurl;
CURLcode curlCode;
char username[] = "domain\\user";
char password[] = "pass";
char proxy[] = "myproxy:8080";
char url[] = "http://some_random_url.com";
hCurl = curl_easy_init();
if(hCurl)
{
curl_easy_setopt(hCurl, CURLOPT_URL, url);
curlCode = curl_easy_setopt(hCurl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curlCode = curl_easy_setopt(hCurl, CURLOPT_PROXY, proxy);
curlCode = curl_easy_setopt(hCurl, CURLOPT_HTTPAUTH, /*CURLAUTH_BASIC | */CURLAUTH_NTLM);
curlCode = curl_easy_setopt(hCurl, CURLOPT_PROXYUSERNAME, username);
curlCode = curl_easy_setopt(hCurl, CURLOPT_PROXYPASSWORD, password);
while(true)
{
curlCode = curl_easy_perform(hCurl);
/* Check for errors */
if(curlCode != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(curlCode));
Sleep(3000);
}
curl_easy_cleanup(hCurl);
}
getchar();
return 0;
}
你是一個拯救生命的人。我已經呆了好幾個小時了。我不知道我是如何設法編寫httpauth而不是proxyauth的。 – conectionist