HttpClient-Xamarin Android-MvvmCross

HttpClient - Xamarin Android - MvvmCross

我一直在使用 Xamarin 和 MvvmCross 为 Android 开发一个应用程序,一切都很顺利,我和我​​的团队能够开发解决方案,本周我们决定进行最后的调整和在其他环境中测试应用程序。 在测试期间,Android 解决方案遇到了一个大问题。在工作环境中一切正常,但当我尝试在家中测试应用程序时,应用程序停止工作。我检查了发生了什么,发现 HttpClient 无法完成对服务器的调用并抛出以下异常:

at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0
at System.Runtime.CompilerServices.TaskAwaiter`1[System.Net.Http.HttpResponseMessage].GetResult () [0x00000] in <filename unknown>:0
at System.Net.Http.HttpClientHandler+<SendAsync>c__async0.MoveNext () [0x00000] in <filename unknown>:0

我在 Google 中搜索了一个解决方案,我在 Xamarin 论坛 http://forums.xamarin.com/discussion/30152/error-nameresolutionfailure (Jefimijana post) 中发现了一个类似的问题,其中一个答案似乎是关于网络配置错误的对我来说很奇怪,因为所有其他应用程序似乎都运行良好。 我测试了连接到同一个 wifi 的 WPF 应用程序,以检查是否有任何问题,但它工作得很好。 所以我发现自己遇到了一个更大的问题,我不能告诉用户他必须在所有其他应用程序正常工作时重新调整他的 wifi 连接,我不能让我的应用程序无缘无故地不使用某些 wifis。 所以我的问题是,这个问题有解决方案吗?这是某种与 HttpClient 相关的 Xamarin 问题吗?或者这是一个 Android 问题?

谢谢,

很遗憾,您没有提供有关您尝试执行的操作的更多信息,但我可以确认我们在 Xamarin.Android 应用程序中发现了类似的错误行为。

Android 上的 Mono Network Stack 至少有两个我们遇到的问题(截至 2015 年 2 月),所以您并不孤单:

目前我可以向您推荐的最佳解决方法是使用 ModernHttpClient,这是一个 HttpClientHandler 实现,它使用本机 API,因此不涉及单声道网络堆栈(加上它也快得多)。