博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 4 +https(如何启动TLS1 1 and TLS1 2)
阅读量:5949 次
发布时间:2019-06-19

本文共 2633 字,大约阅读时间需要 8 分钟。

  • 之前用的网络请求框架是鸿洋的OkHttpUtils,网络请求在5.0手机上使用https没有问题,但是最近突然使用了一个4.4的系统,就报错SSLException ....咋地咋地

  • 然后 我们的副总给我们找一个博客,如何解决4.+系统出现的这个问题(虽然我现在还很有点懵逼...),然后添加上去后,就可以使用了。在Okgo ,OkHttpUtils 都可以用,那么的网络请求应该也可以用?!!(别的没有测) -然后我先贴一下那个仁兄的博客吧 ,使用TLSSocketFactory 类

  • 然后就是在全局初始化的时候使用这个类 , 那个第二次参数,就用他提供的。 ··· OkHttpClient okHttpClient = null; try { HttpsUtils.SSLParams sslParams = HttpsUtils.getSslSocketFactory(null, null, null); okHttpClient = new OkHttpClient.Builder() .addInterceptor(new LoggerInterceptor("history")) .sslSocketFactory(new TLSSocketFactory() , sslParams.trustManager)//这里使用!!! .build(); } catch (KeyManagementException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } OkHttpUtils.initClient(okHttpClient); ···

  • 用OKgo也一样的,第二个参数如果不想用框架自带的我在下面贴出来。

  • 这是 TSsX509TrustManager ···

public class SsX509TrustManager implements X509TrustManager { private static TrustManager[] trustManagers; private static final X509Certificate[] _AcceptedIssuers = new X509Certificate[]{};

@Overridepublic void checkClientTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws java.security.cert.CertificateException {    //To change body of implemented methods use File | Settings | File Templates.}@Overridepublic void checkServerTrusted(java.security.cert.X509Certificate[] x509Certificates, String s) throws java.security.cert.CertificateException {    //To change body of implemented methods use File | Settings | File Templates.}@Overridepublic java.security.cert.X509Certificate[] getAcceptedIssuers() {    return new java.security.cert.X509Certificate[0];}public boolean isClientTrusted(X509Certificate[] chain) {    return true;}public boolean isServerTrusted(X509Certificate[] chain) {    return true;}public static X509Certificate[] get_AcceptedIssuers() {    return _AcceptedIssuers;}/** * 允许所有的SSL请求,添加在new StringRequest()之前 */public static void allowAllSSL() {    HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {        @Override        public boolean verify(String arg0, SSLSession arg1) {            // TODO Auto-generated method stub            return true;        }    });    SSLContext context = null;    if (trustManagers == null) {        trustManagers = new TrustManager[]{new SsX509TrustManager()};    }    try {        context = SSLContext.getInstance("TLS");        context.init(null, trustManagers, new SecureRandom());    } catch (NoSuchAlgorithmException e) {        e.printStackTrace();    } catch (KeyManagementException e) {        e.printStackTrace();    }    HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());}复制代码

}

···

转载地址:http://apsxx.baihongyu.com/

你可能感兴趣的文章
解决Django中通过主键像外键所在的表中添加内容
查看>>
我的友情链接
查看>>
How to Get Started with JMeter: Part 3 – Reports & Performance Metrics Best Practices
查看>>
SSH隧道与端口转发及内网穿透
查看>>
我的友情链接
查看>>
nginx配置文件之---location
查看>>
网站上的常驻条
查看>>
mysql多实例实例化数据库
查看>>
Sql 字符串长度不足补0
查看>>
我的友情链接
查看>>
golang xml和json的解析与生成
查看>>
小弟的新书《Ext JS权威指南》终于出版了
查看>>
类图的总结与学习 OOA
查看>>
好吧好吧,就在这里消磨时间
查看>>
二层的,DTP+CAM/ARP
查看>>
2011工作总结
查看>>
Java学习笔记二:Java开发工具Eclipse的安装与使用
查看>>
3.4-ansible远程执行脚本
查看>>
常见邮件服务器(接收服务器和发送邮件服务器)地址
查看>>
系统监控Zabbix部署文档
查看>>