0

Я пытаюсь использовать новый PCL HttpClient в проекте Windows Phone 7.1. В проекте используется Microsoft.Net.Http 2.1.3-бета от NuGet.Получение рабочего стола Windows Phone и HttpClient

Код:

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 Forms приложение.

При отладке приложения просто перестает работать с методом HttpClient.GetAsync (на эмуляторе или устройстве). Интернет работает на устройстве/эмуляторе.

Этапы воспроизводства:

. создать приложение Windows Phone 7.1 (файл -> новый -> проект)

. nuget command: 'install-package microsoft.net.http -pre'

. добавьте код выше на MainPage

Как я могу заставить это работать?

ответ

3

Чтобы устранить проблему необходимо выполнить следующие действия:

Установите Microsoft Async для 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"); 
    ...  
} 
+0

это здорово работает! – bertt

Смежные вопросы