簡體   English   中英

Android間歇性SSL套接字讀取超時

[英]Android intermittent SSL Socket read timed out

我正在構建一個可以調用HTTP / REST API的Android應用。 我已經自行簽署了測試證書,並將其添加到我的電話信任存儲中。

我遇到了一個非常奇怪的問題,我將收到以下異常:

java.net.SocketTimeoutException: Read timed out
at com.android.org.conscrypt.NativeCrypto.SSL_read(Native Method)
at com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:705)
...

我對這種情況的發生方式或原因一無所知。 重要筆記:

  • 這種情況是隨機發生的,經過大量請求后會再次出現,但有時會消失一兩天。
  • 我無法可靠地重現該問題。
  • 我已經調整了超時設置,但沒有結果。
  • 該問題超出了應用程序的生命周期。 重新啟動應用程序沒有任何效果,盡管似乎可以在5分鍾內解決。
  • 如果我使用cookie存儲,將其刪除似乎可以暫時解決該問題。 如果我不使用cookie存儲,則需要創建HttpClient的新實例(因為cookie在HttpClient實例中會暫時保留)
  • 這不是DNS問題,因為我可以解析端點(因為我有另一個使用相同端點和相同crt的應用程序)。
  • 我正在為Android使用AsyncHttp庫,但是在使用該庫之外仍然會發生問題。
  • 我嘗試了另一版本的android設備(沒有運氣)。

我嘗試過的有趣的事情:

  • 我創建了一個新的AsyncHttp實例,發出了一個請求(未設置cookiestore)並成功收到了響應。 然后,應用程序使用cookie存儲創建另一個AsyncHttp實例,問題仍然存在。 即使在應用程序生命周期之外,第一個(非cookie)請求也可以使用,但第二個則不能。
  • 我厭倦了關閉tcp_timestamp(暫時通過proc中的文件)。 沒變。

如果有人對類似問題有任何想法或經驗,請告訴我。

這實際上是我的服務器代碼中與會話相關的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM