HttpClient.GetAsync никогда не возвращается на Xamarin.Android
Я работаю над приложением Android, которое поддерживается приложением ASP.NET Core, размещенным в Azure. Я использую проект с общей библиотекой для тестирования базовых компонентов проекта консольного приложения перед выполнением функциональных возможностей для проекта Xamarin.Forms (только для Android).
Следующий кусок кода запускаетсяпосле вход в веб-сервис, гдеClient
этоHttpClient
:
public static async Task<MyClass> GetInformationAsync(string accountId)
{
HttpResponseMessage response = await Client.GetAsync(UriData + "/" + accountId);
response.EnsureSuccessStatusCode();
string responseContent = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<MyClass>(responseContent);
}
В том же компьютере / сети код завершается менее чем за секунду в Консольном приложении, однако он никогда не завершается (даже подождал минуту) вXamarin.Forms.Android
проект.
Я нахожу это странным, так как клиент Android может успешно войти в веб-сервис, используяPostAsync
.
Однако есть разница в том, как клиент Android и консольный клиент вызываютGetInformationAsync
.
Пока консольный клиент вызывает его асинхронно:
private static async void TestDataDownload()
{
...
var data = await WebApiClient.GetInformationAsync(myId);
}
Клиент Android вызывает это синхронно
public void MainPage()
{
...
var data = WebApiClient.GetInformationAsync(myId).Result;
}