前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Retrofit/Okhttp Https降级Http处理实践

Retrofit/Okhttp Https降级Http处理实践

作者头像
开发者技术前线
发布2020-11-23 14:56:25
8790
发布2020-11-23 14:56:25
举报

Okhttp现在已经被用到很多框架中,但是很多人对SSL这块不是很熟悉,本篇简单的介绍前怎么使用okhttp进行对Http降级处理,支持到Http。SSL原理请自行找资料看,这快资料目前成熟的文章还是很多得。小长假开始了,出去浪了,本人到10号以后才会推文!

之前出的一篇文章 Retrofit 2.0 超能实践,完美支持Https传输详细介绍了使用okhttp支持https的步骤,很多人要的是所以一切Https都要免信任,实则就是全部放开,那么下面的代码就是介绍如何将okHttp进行免信任Https链接。

信任所有Https

信任所有https请求,也就是放行所有的证书验证可以直接将OkHttpClientHostnameVerifier设置为true

代码语言:javascript
复制
OkHttpClient client = new OkHttpClient();

client.setHostnameVerifier(new HostnameVerifier() {   
 @Override
    public boolean verify(String s, SSLSession sslSession) {        
    return true;
    }
});
TrustManager[] trustAllCerts = new TrustManager[] { 
new X509TrustManager() {    
    @Override
    public void checkClientTrusted(
            java.security.cert.X509Certificate[] x509Certificates,
            String s) throws java.security.cert.CertificateException {
            
    }    
    @Override
    public void checkServerTrusted(
            java.security.cert.X509Certificate[] x509Certificates,
            String s) throws java.security.cert.CertificateException {
            
    }   
    @Override
    public java.security.cert.X509Certificate[] getAcceptedIssuers() {        
     return new java.security.cert.X509Certificate[] {};
    }
} 
};
 try {   
  //构造自己的SSLContext
    SSLContext sc = SSLContext.getInstance("TLS");
    sc.init(null, trustAllCerts, new java.security.SecureRandom());
    client.setSslSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
    e.printStackTrace();
}

接着设置协议模式为升级到1.1 (Protocol.HTTP_1_1)

代码语言:javascript
复制
    client.protocols(Collections.singletonList(Protocol.HTTP_1_1))    
           .build();

目前OKhttp3.5 已经将setHostnameVerifier函数 放到builder当中了,你可以使用 OkHttpClientbuilder.HostnameVerifier进行操作,实则内部调用都一样。

衍生

目前众多框架使用okhttp, 著名的有picasso,glide, retrofit等,通过上面的姿势,就能很好的让这些框架默认支持Https链接。

今天的文章比较简短,但实用性比较高。

猜你喜欢

Retrofit/Okhttp 网络接口加固技术实践(上)

Retrofit/Okhttp API接口加固技术实践(下)

技术 - 资讯 - 感悟

END

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开发者技术前线 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
移动应用安全
移动应用安全(Mobile Application Security,MS)针对移动应用普遍存在的破解、篡改、重打包等各类安全风险,提供Android应用加固、iOS源码混淆、SDK加固等多种加固技术,拥有丰富的行业经验,已服务于金融、互联网、车联网、物联网,运营商等多个行业。稳定、简单、有效,让移动安全建设不再是一种负担。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档