gpt4 book ai didi

c# - HttpClient 和使用代理 - 不断得到 407

转载 作者:IT王子 更新时间:2023-10-29 03:57:16 26 4
gpt4 key购买 nike

代码如下:

 HttpClient client = null;
HttpClientHandler httpClientHandler = new HttpClientHandler()
{
Proxy = new WebProxy(string.Format("{0}:{1}", proxyServerSettings.Address,
proxyServerSettings.Port),false),
PreAuthenticate = true,
UseDefaultCredentials = false,
};


this.httpClientHandler.Credentials = new NetworkCredential(proxyServerSettings.UserName,
proxyServerSettings.Password);


this.client = new HttpClient(this.httpClientHandler);

当我最终这样做时:

HttpResponseMessage httpResponseMessage = this.client.PostAsync(urlToPost, new StringContent(data, Encoding.UTF8, this.mediaType)).Result;

它总是抛出

The remote server returned an error: (407) Proxy Authentication Required.

我不明白我的世界。

相同的代理设置在 IE10 中配置时工作正常,或者如果我改用 HttpWebRequest

最佳答案

您在错误的位置设置了代理凭据。

httpClientHandler.Credentials 是您在代理已建立连接后提供给服务器 的凭据。如果您弄错了这些,您可能会收到 401 或 403 响应。

您需要设置提供给代理 的凭据,否则它将首先拒绝将您连接到服务器。您提供给代理的凭据可能与您提供给服务器的凭据不同。如果你弄错了,你会得到一个 407 响应。您收到 407 是因为您根本没有设置这些。

// First create a proxy object
var proxy = new WebProxy
{
Address = new Uri($"http://{proxyHost}:{proxyPort}"),
BypassProxyOnLocal = false,
UseDefaultCredentials = false,

// *** These creds are given to the proxy server, not the web server ***
Credentials = new NetworkCredential(
userName: proxyUserName,
password: proxyPassword)
};

// Now create a client handler which uses that proxy
var httpClientHandler = new HttpClientHandler
{
Proxy = proxy,
};

// Omit this part if you don't need to authenticate with the web server:
if (needServerAuthentication)
{
httpClientHandler.PreAuthenticate = true;
httpClientHandler.UseDefaultCredentials = false;

// *** These creds are given to the web server, not the proxy server ***
httpClientHandler.Credentials = new NetworkCredential(
userName: serverUserName,
password: serverPassword);
}

// Finally, create the HTTP client object
var client = new HttpClient(handler: httpClientHandler, disposeHandler: true);

关于c# - HttpClient 和使用代理 - 不断得到 407,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29856543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com