gpt4 book ai didi

c# - 远程服务器返回错误 : (407) Proxy Authentication Required

转载 作者:太空狗 更新时间:2023-10-29 21:12:52 24 4
gpt4 key购买 nike

我在 .NET 3.5 中使用此代码并收到错误“远程服务器返回错误:(407) 需要代理身份验证。”

using (WebClient client = new WebClient())
{
WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;

try
{
string webPageStr = client.DownloadString(URL);
Console.WriteLine("OK");
}
catch (Exception ex)
{
Console.WriteLine("FAIL");
Console.WriteLine(ex.Message);
}
}

但是,此代码在 .NET 4.0 中运行顺畅,因为此行足以通过代理身份验证,但不适用于 .NET 3.5。

WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;

因此,我尝试了很多其他方法来解决这个问题,但都没有用:

1) 将 CredentialCache.DefaultCredentials 行替换为

WebRequest.DefaultWebProxy.Credentials = new NetworkCredential(user, password, domain);

2) 创建新的代理对象

IWebProxy proxy = new WebProxy(proxyUrl, port);
proxy.Credentials = new NetworkCredential(user, pass, domain);
client.Proxy = proxy;
client.Credentials = new NetworkCredential(user, pass, domain);

3) 添加这一行

client.UseDefaultCredentials = true;

4) 使用 HttpWebRequest 而不是 WebClient 并重复上面的每个过程。这是示例代码。

HttpWebRequest webRequest = WebRequest.Create(URL) as HttpWebRequest;
webRequest.Proxy = WebRequest.DefaultWebProxy;
webRequest.Credentials = new NetworkCredential(user, pass, domain);
webRequest.Proxy.Credentials = new NetworkCredential(user, pass, domain);

try
{
webRequest.GetResponse();
Console.WriteLine("OK");
}
catch (Exception ex)
{
Console.WriteLine("FAIL");
Console.WriteLine(ex.Message);
}

我觉得自己走到了死胡同,因为我必须使用 .NET 3.5。我不知道这两个 .NET 版本之间一定有区别。非常感谢您。

最佳答案

只需将其添加到配置中

 <system.net>
<defaultProxy useDefaultCredentials="true" >
</defaultProxy>
</system.net>

关于c# - 远程服务器返回错误 : (407) Proxy Authentication Required,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23590426/

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