首页 > 解决方案 > HttpClient GetAsync() 无法按预期在 Xamarin.iOS 上运行

问题描述

所以.. 这似乎是一件很容易的事情——发送一个异步 http 请求,对吧?我有 Xamarin 项目,其核心项目是基于 .NET Standard 的项目。我正在使用 System.Net.HttpClient 中的 HttpClient。当我在真实设备或模拟器上运行应用程序时会出现问题。

我在互联网上找到的一切都与 async/await 的错误使用有关。有趣的是,以下代码是同步工作的,我的意思是当我使用.GetAwaiter().GetResult()时。但是异步运行它,应用程序就会冻结。Try/Catch也无济于事:)

var httpClient = new HttpClient();
try
{
   var response = await httpClient.GetAsync("https://google.com");//.ConfigureAwait(false).GetAwaiter().GetResult();

   return await HandleHttpResponse<T>(response);
 }
 catch (Exception 
 {
    App.LogService.Log(MvvmCross.Logging.MvxLogLevel.Error, () => ex.Message);
    throw ex;
 }

标签: c#xamarin.iosasync-awaithttpclientmvvmcross

解决方案


推荐阅读