2016-11-09 31 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,並獲得成功。

感謝所有那些試圖協助。