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帖子)中发现了一个类似的问题,其中一个答案是网络配置错误,这对我来说似乎很奇怪,因为所有其他应用程序似乎都运行得很好.
我测试了连接到同一wifi的WPF应用程序,以检查是否有任何问题,但它工作得很好.
所以我发现自己有一个更大的问题,我无法告诉用户他必须重新调整他的wifi连接,当所有其他应用程序正常工作,我不能让我的应用程序不使用某些wifis没有明显的原因.
所以我的问题是,这个问题有解决方案吗?这是某种与HttpClient相关的Xamarin问题吗?或者这是一个Android问题?
>我一直在测试的设备是三星Galaxy Tab 3
谢谢,
解决方法:
不幸的是,您没有提供有关您尝试做什么的更多信息,但我可以确认我们在Xamarin.Android应用程序中看到了类似的错误行为.
Android上的Mono网络堆栈至少存在两个问题(截至2015年2月),因此您并不孤单:
>偶尔NameResolutionFail对应用程序发出的前几个http请求.这个问题通常会消失,我们已经确认这不是网络配置问题(例如,浏览器/ WebView发出的所有请求都没有问题).其他人报告了类似的问题:https://bugzilla.xamarin.com/show_bug.cgi?id=18613
> SSL连接不可靠,请参阅https://bugzilla.xamarin.com/show_bug.cgi?id=19334
我现在可以推荐给你的最好的解决方法是使用ModernHttpClient,这是一个使用本机API的HttpClientHandler实现,因此不涉及单声道网络堆栈(加上它也快得多).
标签:android,xamarin,xamarin-android,mvvmcross,dotnet-httpclient 来源: https://codeday.me/bug/20190728/1559651.html