我知道也有人问过类似的问题,但这次有点不同。
我们有一个应用程序与我们的服务器进行一些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,就达到了目的。
感谢所有帮助我的人。