这是我的问题:
我想使用自签名证书在服务器上发出httpS请求.在WLAN上与galaxy S2(v4.0.3),Nexus S(4.0.4),Xperia Ray(4.0.3)和galaxy Ace(2.3.6)配合使用时效果很好.
在3G中进行测试时,它仅适用于galaxy Ace和Xperia Ray.在其他我得到的套接字已关闭:java.net.socketException.
在this page上,我找到了解决方案.我有一个请求属性Connection:关闭.但是没有此标头,我会收到另一个错误:握手超时.
这些设备在获得这些不同结果方面可能有何不同?
对于https请求,我使用javax.net.ssl包.我为请求使用客户端私钥.
编辑:我用其他SIM卡进行了测试,这很奇怪:使用一张SIM卡,它可以在Nexus S上运行,但不能在银河S上使用.使用第二张,对所有人都可以正常运行.我的结论是:某些运算符可能会捆绑特定的请求或数据传输.我不知道为什么,我会与他们联系以获取更多信息
编辑2:
解决方案在这里:
how to force my app NOT to use the 3g data proxy setting
解决方法:
根据您的编辑,此问题确实是由运算符代理设置引起的.
您的链接解决了我的问题,但是花了点时间弄清楚如何使用ProxySelector和* Proxy.NO_PROXY *,因此我想在这里发布解决方案以确保完整性.
请注意,我覆盖了应用程序中的所有URI尝试,如果您通过Facebook SDK之类的连接而不希望自己入侵,这将非常方便.
ProxySelector proxySelector = new ProxySelector() { @OverrIDe public List<Proxy> select(URI uri) { List<Proxy> proxIEs = new ArrayList<Proxy>(); proxIEs.add(Proxy.NO_PROXY); return proxIEs; } @OverrIDe public voID connectFailed(URI uri, SocketAddress address, IOException failure) { // Todo auto-generated method stub } }; ProxySelector.setDefault(proxySelector);
总结 以上是内存溢出为你收集整理的Java-3G中某些Android设备的HTTPS异常全部内容,希望文章能够帮你解决Java-3G中某些Android设备的HTTPS异常所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)