Android的SocketTimeoutException在WiFi上使用Retrofit / OkHttpClien



我知道也有人问过类似的问题,但这次有点不同。

我们有一个应用程序与我们的服务器进行一些HTTP连接。

LG Nexus 5X三星Galaxy 5上运行应用程序时,使用我们的任何3 WiFi路由器,连接超时 ("SocketTimeoutException: timeout"由于"SocketException: Socket closed")。连接不会超时,如果我们使用蜂窝网络,在设备之间的tethering或者在连接到相同(有问题的)WiFi路由器的笔记本电脑上使用模拟器不会超时

只是要指出,路由器连接到不同的isp。

有没有人经历过类似的事情或有一个想法?

谢谢

已解决:尝试GET而不是POST(具有约4K字节的JSON体)似乎可以正常工作。因此,在服务器端与tcpdump进行会话后,事实证明请求确实到达了服务器,但它是"损坏的"。第一个~300字节和最后一个~1000字节确实到达了服务器,但是中间~2500个字节丢失了(可能是由于某些服务提供商基础设施/shaper或其他原因)。

在任何情况下,将OKHttpClient实例的缓冲区大小(为其提供一个新的SocketFactory)降低到512,就达到了目的。

感谢所有帮助我的人。

相关内容

  • 没有找到相关文章

最新更新