C++ 通过cURL使用NTLM进行代理身份验证,即使具有正确的凭据,也会返回407
我正在尝试使用使用NTLM身份验证的代理访问服务器。 问题是,即使我提供了正确的凭据(我已经用Firefox测试过,代理、端口、用户名和密码都正确),我也会收到407(代理需要身份验证) 我尝试过使用CURLAUTH\u NTLM、CURLAUTH\u NTLM以及两者的逻辑组合,但仍然没有任何结果 我使用了最新版本的cURL(7.42.1)和最新版本的openSSL(1.0.2) 谁能告诉我我做错了什么 这是我的C/C+++代码:C++ 通过cURL使用NTLM进行代理身份验证,即使具有正确的凭据,也会返回407,c++,c,curl,proxy,ntlm,C++,C,Curl,Proxy,Ntlm,我正在尝试使用使用NTLM身份验证的代理访问服务器。 问题是,即使我提供了正确的凭据(我已经用Firefox测试过,代理、端口、用户名和密码都正确),我也会收到407(代理需要身份验证) 我尝试过使用CURLAUTH\u NTLM、CURLAUTH\u NTLM以及两者的逻辑组合,但仍然没有任何结果 我使用了最新版本的cURL(7.42.1)和最新版本的openSSL(1.0.2) 谁能告诉我我做错了什么 这是我的C/C+++代码: int _main() { CURL *hCurl;
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;
}阅读文档。设置用于远程HTTP服务器而不是代理的凭据:
传递一个设置为位掩码的long-as参数,告诉libcurl您希望它使用哪种身份验证方法与远程服务器通话
。。。使用CURLOPT_USERPWD选项或CURLOPT_USERNAME和CURLOPT_password选项设置实际名称和密码
有关使用代理的身份验证,请参见
使用
CURLOPT\u PROXYAUTH
指定代理身份验证方法(NTLM),并使用设置代理凭据。您是一个救生员。我已经做了好几个小时了。我不知道我是如何写httpauth而不是proxyauth的。