这是我的问题:
我想在我的服务器上使用自签名证书进行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上工作。第二个在所有人身上都很好用。我的结论是:一些运营商可能会限制特定的请求或数据传输。我不知道为什么,我会联系他们以获取更多信息。
我想在我的服务器上使用自签名证书进行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上工作。第二个在所有人身上都很好用。我的结论是:一些运营商可能会限制特定的请求或数据传输。我不知道为什么,我会联系他们以获取更多信息。
编辑2: 解决方案在这里: 如何强制我的应用程序不使用3g数据代理设置