2

我正在使用Microsoft HTTP 客户端库 - PCL(通过 NuGet 安装)与公共 REST API 进行通信。因为我在企业防火墙后面,所以我需要在 HttpClientHandler 上配置代理信息。

但是,在 HttpClientHandler 上设置代理时,会引发以下错误:

找不到方法:'无效 System.Net.Http.HttpClientHandler.set_Proxy(System.Net.IWebProxy)'。

我的代码没有什么特别的,所以我有点疑惑:

var handler = new HttpClientHandler
{
    UseDefaultCredentials = false,
    Proxy = new DefaultProxy
    {
        Credentials =
            new NetworkCredential(
                "firstname.lastname",
                "P4ssw0rd",
                "DOMAIN")
    },
    UseProxy = true
};

this.client = new HttpClient(handler);

一些注意事项:

  • 我已经成功地将标准.Net 库(即不是PCL)中的HttpClientHandler 用于另一个项目,所以我知道代理信息是正确的。
  • 当绕过代理(即在公司网络之外,或没有代理)时,我已经成功检索到数据。
  • DefaultProxy 实现 IWebProxy。
4

1 回答 1

3

此错误是由于 HttpClient 包未安装在使用项目上。您应该收到类似的警告:

所有引用 [消费项目] 的项目都必须安装 nuget 包 Microsoft.Bcl.Build。

基本上,每个引用 HttpClient & Async 的类库也必须引用 HttpClient & Async。

于 2013-08-01T14:58:40.577 回答