【问题标题】:Getting Windows Phone and HttpClient PCL working让 Windows Phone 和 HttpClient PCL 工作
【发布时间】:2013-05-08 23:15:30
【问题描述】:

我正在尝试在 Windows Phone 7.1 项目中使用新的 HttpClient PCL。该项目使用来自 NuGet 的 Microsoft.Net.Http 2.1.3-beta。

代码:

var client = new HttpClient();
client.BaseAddress = new Uri("http://api.geonames.org/");
var resp = client.GetAsync("earthquakesJSON?north=44.1&south=-9.9&east=-22.4&west=55.2&username=bertt").Result;
var earthquakesJson = resp.Content.ReadAsStringAsync().Result;

此代码在 Windows 窗体应用程序中运行良好。

当调试应用程序时,会停止使用方法 HttpClient.GetAsync(在模拟器或设备上)。互联网正在设备/模拟器上运行。

重现步骤:

。创建 Windows Phone 7.1 应用(文件 -> 新建 -> 项目)

。 nuget 命令:'install-package microsoft.net.http -pre'

。将上面的代码添加到 MainPage

我怎样才能让它工作?

【问题讨论】:

    标签: windows-phone-7 dotnet-httpclient printer-control-language


    【解决方案1】:

    要解决您的问题,请执行以下操作:

    为 WP7.1 安装 Microsoft Async:install-package microsoft.Bcl.Async

    将您的代码更改为:

    private async void GetData() {
       var client = new HttpClient();
    
       client.BaseAddress = new Uri("http://api.geonames.org/");
       var earthquakesJson = await client.GetStringAsync("earthquakesJSON?north=44.1&south=-9.9&east=-22.4&west=55.2&username=bertt");
       ...      
    }
    

    【讨论】:

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