Я опубликовал в Azure очень простой код api.net asp.net, который поставляется с шаблоном. Когда я пытаюсь выполнить действие GET по умолчанию, я получаю ответ JSON ["value1","value2"]
Звоните на Azure web api из приложения для Android просто вешает в ожидании ответа
Когда я пытаюсь сделать тот же вызов из моего проекта xamarin-android, выполнение просто зависает вечно, ожидая ответа (см. Код ниже).
Я использую визуальную студию 2015. Я подключил свой телефон для отладки.
button.Click += onButtonClick;
}
private void onButtonClick(object sender, EventArgs e)
{
GetValuesSync().Wait();
}
private async Task GetValuesSync()
{
string ResponseJsonString = null;
string url =
"http://myWebapp.azurewebsites.net/api/values";
using (var httpClient = new HttpClient())
{
try
{
Task<HttpResponseMessage> getResponse = httpClient.GetAsync(url);
HttpResponseMessage response = await getResponse; //Execution hangs here forever ...
ResponseJsonString = await response.Content.ReadAsStringAsync();
values = JsonConvert.DeserializeObject<string[]>(ResponseJsonString);
}
catch (Exception ex)
{
throw;
}
}
}
Спасибо за помощь
У вас есть тупик здесь 'GetValuesSync() .Wait();'. –
@ Richard77: Я рекомендую прочитать мою статью [MSDN о лучших методах асинхронизации] (https://msdn.microsoft.com/en-us/magazine/jj991977.aspx) и мое сообщение в блоге [Не блокировать код Async] (http://blog.stephencleary.com/2012/07/dont-block-on-async-code.html). –