我的团队正在使用Xamarin表单(主要针对手机)来处理依赖于网络连接的项目。我们遇到了一个关于android的问题,它阻碍了我们应用程序的一个主要特性。当我们在从wifi切换到蜂窝后尝试访问数据服务时,我们经常会在FIRST数据检索尝试中收到超时错误。后续尝试工作。 此问题不会发生(从移动设备到wifi)。 This bug describes our problem, but says it's for iOS, and interestingly enough we dont get this issue on iOS
要复制的步骤列表如下:
我们更喜欢在我们的应用程序中使用ServiceStack客户端,因为它隐藏了许多复杂的代码。通过对问题的研究,大量信息指向我们使用名为ModernHttpClient的库(此错误描述了我们的确切步骤但报告与iOS相关),但这并不能解决我们的问题。
此处还可以找到有关这些步骤的视频截屏视频要观看此视频的示例截屏视频,请观看此视频https://drive.google.com/open?id=0B9ulyVqWgbL3aEUzVFJEYTF2dEk。 可以在https://drive.google.com/open?id=0B9ulyVqWgbL3UHZmX2x6NDBEY00
找到上述屏幕演示中使用的简单示例应用程序如果这是一个Android操作系统问题,单声道问题或代码问题......或者其中几个的组合,你们是否知道?它有解决方法吗?
编辑:另一种尝试的方案很有趣。
答案 0 :(得分:0)
问题是客户端在更改网络后重新使用连接,当然连接无效。
您可以添加"内容:已关闭"通过将HADPWebRequest的KeepAlive设置为false,但是无法从PCL程序集中完成。
因此,您必须创建从PCL到ios / android项目的依赖关系,将请求发送到本机端,将KeepAlive设置为false并返回,这样连接将关闭,当您创建新连接时,它将在新的网络上。