0

我正在尝试在 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

我怎样才能得到这个工作?

4

1 回答 1

3

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

为 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");
   ...      
}
于 2013-05-09T02:26:53.373 回答