在我的Android代碼(使用Apache HTTP客戶端)我已經設置以下參數:差異與消息「連接超時」
HttpConnectionParams.setConnectionTimeout(params, 30 * SECOND_IN_MILLIS);
HttpConnectionParams.setSoTimeout(params, 30 * SECOND_IN_MILLIS);
我連接到HTTPS Web服務。在慢速網絡上,預計30秒後我得到ConnectionTimeoutException
(然後我重試);但也有「少數」的情況下(沒有模式,我可以看到),我得到以下任一:
javax.net.ssl.SSLException: Read error: ssl=0xe71160: I/O error during system call, Connection timed out javax.net.ssl.SSLException: Write error: ssl=0xe71160: I/O error during system call, Broken pipe
我得到了所以這段代碼,目前尚在測試:
registry.register(new Scheme("https",
SSLCertificateSocketFactory.getHttpSocketFactory(30 * SECOND_IN_MILLIS, null), 443));
我可以理解連接建立超時和套接字超時 - 我的查詢是否真的需要第三次SSL超時?與SO_TIMEOUT有什麼不同?
PS:這些excepions似乎在讀取/寫入數據時會出現畫面 - 這應該導致數據丟失 - 但我無法觀察到這一點。