在HttpClientHandler可移植类库(PCL)中设置代理时找不到的方法

时间:2013-08-01 08:18:40

标签: c# portable-class-library dotnet-httpclient base-class-library

我正在使用Microsoft HTTP Client Libraries - PCL(通过NuGet安装)与公共REST API进行通信。因为我在公司防火墙后面,我需要在HttpClientHandler上配置代理信息。

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

  

找不到方法:'Void 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库中的HttpClientHandler(即非PCL)用于另一个项目,所以我知道代理信息是正确的。
  • 我在绕过代理时成功检索了数据(即在公司网络之外,或者没有代理)。
  • DefaultProxy实现IWebProxy。

1 个答案:

答案 0 :(得分:3)

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

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

基本上,每个引用一个引用HttpClient& Async还必须引用HttpClient&异步。