2016-11-09 54 views
1

我知道类似的问题已被问到,但是这个问题稍有不同。使用改进/ OkHttpClient的WiFi Android SocketTimeoutException

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

在运行上的LG的Nexus 5X三星银河5该应用,使用任何我们3 的WiFi路由器,连接超时( “SocketTimeoutException:超时” 由于“SocketException:插座关闭”)。 如果我们使用蜂窝网络,设备或连接到相同的(有问题)的WiFi路由器一台笔记本电脑模拟器之间束缚连接不会超时

只需指出,路由器连接到不同的ISP。

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

感谢

+0

也许你的wifi路由器阻止手机的mac地址 –

+0

检查你是否使用正确的baseurl?在浏览器或邮递员中使用相同的API并检查它是否正常工作? –

+0

在LG上检查了Chrome上的网址,它可以正常工作。该应用程序确实连接到本地运行的服务器(在同一网络上)。 – eranbet

回答

0

解决:尝试一个GET而不是POST(用〜4K字节的JSON体)似乎正常工作。所以,在与服务器端tcpdump进行会话后,事实证明请求确实达到了服务器,但它的“损坏了”。前300个字节和最后1000个字节确实到达服务器,但中间〜2500 字节缺失(可能是由于某些服务提供商的基础架构/整形或其他原因)。

在任何情况下,降低OKHttpClient实例的缓冲大小(它提供一个新的SocketFactory)到512,并获得成功。

感谢所有那些试图协助。