這是我的問題:在某些Android設備的3G中的HTTPS例外
我想使用自簽名證書在我的服務器上發出HTTPS請求。使用Galaxy S2(v4.0.3),Nexus S(4.0.4),Xperia Ray(4.0.3)和Galaxy Ace(2.3.6)在WLAN中正常工作。
在3G測試時,它只適用於Galaxy Ace和Xperia Ray。在其他人我得到Socket is closed: java.net.SocketException
。
在this page,我找到了一個解決方案。我有一個請求屬性Connection : close
。但沒有這個標題,我得到了一個不同的錯誤:Handshake timeout
。
在這些設備中獲得這些不同的結果有什麼不同?
對於https請求,我使用javax.net.ssl
包。我爲請求使用客戶端私鑰。
編輯:我測試了其他人的SIM卡,這很奇怪:有一個,它可以在Nexus S上運行,但不在Galaxy S上運行。一秒鐘後,每個人都可以正常工作。我的結論是:一些運營商可能會限制特定請求或數據傳輸。我不知道爲什麼,我將他們聯繫到更多的信息
EDIT2: 這裏的解決方案: how to force my app NOT to use the 3g data proxy setting
我面臨類似的問題。我使用相同的SIM卡在兩部手機(2.3.6和4.0.x)上進行了測試。 ICS提供了此套接字連接問題。 – slott