Java-3G中某些Android设备的HTTPS异常

Java-3G中某些Android设备的HTTPS异常,第1张

概述这是我的问题:我想使用自签名证书在服务器上发出HTTPS请求.在WLAN上与GalaxyS2(v4.0.3),NexusS(4.0.4),XperiaRay(4.0.3)和GalaxyAce(2.3.6)配合使用时效果很好.在3G中进行测试时,它仅适用于GalaxyAce和XperiaRay.在其他我得到的套接字已关闭:java.net.SocketException.在th

这是我的问题:

我想使用自签名证书在服务器上发出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异常所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1073515.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存