我正在尝试在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(在仿真器或设备上)。 Internet正在设备/模拟器上工作。
重现的步骤:
。创建Windows Phone 7.1应用程序(文件 - >新 - >项目)
。 nuget命令:'install-package microsoft.net.http -pre'
。将以上代码添加到MainPage
我怎样才能使这个工作?
答案 0 :(得分:3)
要解决您的问题,请执行以下操作:
安装Microsoft Async for WP7.1: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");
...
}