我的工作之一是解决我的Works应用程序中的一个问题。问题在于,当设备无法访问API服务器时,连接将花费大约20秒钟才能失败(即使设备ID处于飞行模式,我觉得很奇怪)。
通常我会在http请求之前检查连接状态并进行相应处理,但不幸的是,在这里实际上是不可能的,因为我们的移动应用程序只能在客户站点中的特定网络上运行,但是他们可以使用多个网络加入-因此他们可能具有有效的互联网连接,但无法访问API。
我注意到的是,如果我通过IP尝试此操作而不是在DNS上进行回复,它会立即失败,这是我想要的,但这可能只是一个红鲱鱼。
此外,在第一次尝试后,它似乎也立即失败-这是我第一次看到此连接延迟问题。
我知道我可以设置http超时,但这并不是真正的问题-如果设备处于飞行模式,它应该立即失败,所以我不明白为什么不是这种情况。
终点-这是Xamarin iOS应用程序。代码没有做任何疯狂的事情-实际上只是在做一个简单的PostAsync()。我还尝试了项目设置中可用的每个http客户端实现,但均无济于事。
如果有人有任何想法,我将不胜感激。谢谢。