可以从Silverlight中的另一台PCL使用HttpClient PCL吗?

时间:2014-03-09 11:08:14

标签: c# silverlight silverlight-5.0 portable-class-library dotnet-httpclient

早些时候我发布了an error report关于HttpClient从Silverlight应用程序中的另一个可移植类库中使用时引发的异常。以下是关于类似问题的another thread

为了调查并更好地说明问题,我构建了一个小型Silverlight应用程序,该应用程序仅尝试使用Microsoft.Net.Http NuGet包(HttpClient库)发出HTTP请求。测试代码非常简单:

public class HttpClientRunner
{
    public Task<string> ExecuteRequestAsync()
    {
        using (var client = new HttpClient())
        {
            return client.GetStringAsync("http://someurl/");
        }
    }
}
  1. 当我将此代码包含在Silverlight应用程序或Silverlight类库中时,它可以正常工作。
  2. 当我将此代码包含在便携式类库(NET45 + SL5 + WinPhone8 + Win8中,我也尝试过其他配置文件),并从Silverlight 5调用它时,它会抛出一个关于不支持自定义凭据的异常。
  3. 我找到了一个解决方法,并在调用上面的测试代码之前添加了一行WebRequest.RegisterPrefix(“http://”,System.Net.Browser.WebRequestCreator.ClientHttp)。这有助于消除凭证异常,但现在我收到有关方法System.Net.Browser.ClientHttpWebRequest.set_AllowAutoRedirect的NotImplemented异常。
  4. 暂时我放弃了从PCL调用HttpClient的想法。我链接了Silverlight项目中的C#文件,然后就可以了。但是这种行为表明在Silverlight平台上HttpClient PCL实现有问题。我想知道当从另一个PCL调用HttpClient时是否有人成功了。

1 个答案:

答案 0 :(得分:0)

您是否引用了引用PCL的SL5应用程序中的Microsoft.Net.Http NuGet包?