Warm tip: This article is reproduced from serverfault.com, please click

c#-Xamarin.Forms Android上的HttpClient无法响应和冻结(Prism)

(c# - HttpClient on Xamarin.Forms Android Not Responding and Freezing (Prism))

发布于 2020-11-28 12:12:46

我有一个使用Xamrin Forms和Prism的非常简单的MVVM应用程序,该应用程序是从Prism Xamarin模板构建的。

当我初始化一个新的ViewModel时,我想调用一个API,在UWP上,它没有任何问题,但是在Android上,它只是冻结,不返回任何错误或引发任何异常。

我将代码简化到了发生错误的地方,并使用任何人都可以使用的URI进行了测试。

public async Task InitializeAsync(INavigationParameters parameters)
    {
        try
        {
            var client = new HttpClient();
            
            var response = await client.GetAsync("https://www.google.co.uk").ConfigureAwait(false);
        }
        catch (Exception ex)
        {
            System.Diagnostics.Debug.WriteLine(ex.Message);
        }
    }

我正在使用下面的NuGets

  • 棱镜核心v8.0.0.1909
  • Prism.Dryloc.Forms v8.0.0.1909
  • Xamarin.Forms v4.8.0.1687

我已将HttpClient实现设置为Android和本机TLS 1.2+ 在此处输入图片说明

我查看了其他几篇相似的文章,但对解决该问题并不高兴,有人能说明我如何解决该问题或使其正常工作吗?

Questioner
Guy
Viewed
0
Guy 2020-12-01 21:45:12

经过一段时间的故障排除并将我的头撞在砖墙上后,我终于弄明白了出了什么问题。

没有什么!

在Android上跳过并没有越过下面的第7行,并且屏幕没有在重新绘制。

var response = await client.GetAsync("https://www.google.co.uk").ConfigureAwait(false);

当我将手机旋转90度时,屏幕将重新绘制,我可以看到请求已生效。