HttpClient - Xamarin Android - MvvmCross

3
我正在使用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

我在谷歌上搜索了解决方案,发现Xamarin论坛(Jefimijana帖子)http://forums.xamarin.com/discussion/30152/error-nameresolutionfailure有一个类似的问题,并且其中一个答案是网络配置错误。这对我来说很奇怪,因为所有其他应用程序都能正常工作。 我测试了连接同一wifi的WPF应用程序,以检查是否有任何问题,但它运行良好。 所以我面临着更大的问题,我不能告诉用户他必须重新调整wifi连接,当所有其他应用程序都能正常工作时,我也不能让我的应用程序在没有明显原因的情况下无法使用某些wifi。 因此,我的问题是,有没有解决这个问题的方法?这是与HttpClient相关的Xamarin问题吗?还是这是一个Android问题?
  • 我测试过的设备是三星Galaxy Tab 3
谢谢,

你真的需要提供一些示例代码。我甚至不知道在哪里建议可能出了什么问题。 - PkL728
1个回答

7
很遗憾,您没有提供更多关于您尝试做什么的信息,但我可以确认我们在我们的Xamarin.Android应用程序中看到了类似的错误行为。
Android上的Mono网络堆栈至少存在两个问题(截至2015年2月),我们正在经历这些问题,所以您并不孤单:
- 应用程序发出的前几个http请求会偶尔出现NameResolutionFailure。该问题通常会消失,并且我们已确认这不是网络配置问题(例如,由浏览器/ WebView 发出的所有请求都能正常进行)。其他人也报告了类似的问题:https://bugzilla.xamarin.com/show_bug.cgi?id=18613 - SSL连接不可靠,请参见https://bugzilla.xamarin.com/show_bug.cgi?id=19334 我目前能给你的最佳解决方法是使用ModernHttpClient,它是一个HttpClientHandler实现,使用本地API,因此不涉及mono网络堆栈(而且速度相当快)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接