【发布时间】:2012-06-15 14:41:38
【问题描述】:
这是我的问题:
我想使用自签名证书在我的服务器上发出 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 给出了这个套接字连接问题。
标签: java android sockets https socketexception