【问题标题】:The remote server returned error: (407) Proxy Authentication Required远程服务器返回错误:(407)需要代理身份验证
【发布时间】:2014-05-11 08:13:36
【问题描述】:

我将此代码用于 .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 版本之间一定有区别。非常感谢您。

【问题讨论】:

  • 曾经找到 3.5 的解决方案吗?我遇到了同样的事情,4.0 更新看起来是唯一的选择。

标签: c# .net-3.5 proxy-authentication http-status-code-407


【解决方案1】:

只需将其添加到配置中

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

【讨论】:

    【解决方案2】:

    我之前在使用 Visual Studio 解决方案时遇到过这个问题。这对我有帮助:

    打开 IE。转到工具 -> Internet 选项。单击连接选项卡,然后单击 LAN 设置按钮。取消选中“自动检测设置”。

    【讨论】:

      【解决方案3】:

      有时重新启动 Visual Studio 可以解决此问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多