使用Retrofit / OkHttpClient

时间:2016-11-09 13:27:45

标签: android timeout wifi retrofit okhttp

我知道有类似的问题,但这个问题略有不同。

我们有一个应用程序可以与我们的服务器建立HTTP连接。

LG Nexus 5X Sumsung Galaxy 5 上运行应用时,使用我们的3个 WiFi 路由器,连接超时(" SocketTimeoutException:timeout"由于" SocketException:Socket关闭")。 如果我们在设备之间使用移动网络网络,网络共享,或者在设备之间使用模拟器,则连接不会超时笔记本电脑连接到相同(有问题的)WiFi路由器。

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

有没有人经历过这样的事情或有想法?

由于

1 个答案:

答案 0 :(得分:1)

解决:尝试GET而不是POST(JSON主体为~4K字节)似乎工作正常。因此,在与服务器端 tcpdump 进行会话后,发现请求确实达到了服务器,但它是“已损坏”。第一个~300个字节和最后一个~1000个字节确实到达服务器但中间~2500 字节 缺少(可能是由于某些服务提供商基础设施/整形器或其他)。

在任何情况下,将 OKHttpClient 实例(提供新的 SocketFactory )的缓冲区大小降低到512就可以了。

感谢所有试图提供帮助的人。

相关问题