【问题标题】:How to authenticate against a proxy when using the HttpClient class?使用 HttpClient 类时如何对代理进行身份验证?
【发布时间】:2012-03-22 18:04:28
【问题描述】:

我有一个基于 .NET 4 构建的控制台应用程序,它使用 HttpClient 库(通过 NuGet 获得)通过 Internet 从公共 API 检索数据。控制台应用程序位于代理后面。它所在的 Windows 计算机在 Internet Explorer 中具有正确的代理设置。当控制台应用程序尝试访问外部世界时,它会收到 407 状态 - “需要代理身份验证”。

我还没有编写任何特定的代码来处理代理。我从 407 错误中假设应用程序指向代理没有问题,但代理没有对请求进行身份验证。

我的问题是,是否可以将 HttpClient 设置为使用登录用户的凭据来验证代理?如果是这样,怎么做?

var client = new HttpClient(webRequestHandler);
client.PostAsync(RequestUri, MyContent);

【问题讨论】:

    标签: .net .net-4.0 proxy httpclient


    【解决方案1】:

    我设法通过 app.config 中的代理配置非常简单地解决了我的问题。

    <system.net>
        <defaultProxy enabled="true" useDefaultCredentials="true">
            <proxy usesystemdefault="True" />
        </defaultProxy>
    </system.net>
    

    http://msdn.microsoft.com/en-us/library/dkwyc043.aspx

    【讨论】:

      【解决方案2】:

      如果您想以编程方式执行相同操作,可以使用以下代码:

      WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;
      

      (这些对象来自 `System.Net' 命名空间)。

      来自 MSDN 的更多信息:http://msdn.microsoft.com/en-us/library/system.net.webproxy.getdefaultproxy.aspx

      【讨论】:

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