glide 集成okhttp3 解决https自签名证书问题

问题glide加载不了自签名证书的https地址
解决
第一步.glide默认使用httpurlconnection,修改成okhttp3
compile 'com.github.bumptech.glide:glide:3.7.0'compile 'com.github.bumptech.glide:okhttp3-integration:1.4.0@aar'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
第一个是glide第三个是okhttp 3,第二个就是做引入的,有3个类


第二步,定义自己的okhttpGlideModule
根据glide,github上的文档说明,引入okhttp3要两步,第二步是
< meta-data android:name = "com.bumptech.glide.integration.okhttp3.OkHttpGlideModule" android:value = "GlideModule" />
但是这个不不能解决我们自签名的问题,所以自定义okhttpGlideModule 与okhttpUrlLoader,
首先你的项目的okhttp要支持https,加入自签名证书什么的,(因7.0有差异,查询7.0配置证书,7.0要使用系统的配置
我使用的是hongyang的okhttputils;


主要用到这个支持自签名的okhttpClient;
顺序是 
meta-data 进入okhttpGlideModule  在进入okhttpUrlLoader的factory 修改其中代码如下,

所有我们至少使用2个类okhttpGlideModule  在进入okhttpUrlLoader
顺序变成,meta-data 进入自定义的okhttpGlideModule   再进入自定义的okhttpUrlLoader
meta-data 变成
<meta-data android :name= "com.xxx.xxx.OkHttpGlideModule" android :value= "GlideModule" />

到此结束
总结
1.okhttp必须支持自签名
2.glide使用okhttp (就会那3个引用库)
3.自定义两个类 从meta-data进入我们自己的类
4.组要就是修改okhttpUrlLoader的internalClient 替换成我们自己的okhttp支持自签名

注意
这个的寻找方法也就是外部库的寻找
compile 'com.github.bumptech.glide:okhttp3-integration:1.4.0@aar'


< meta-data android:name = "com.bumptech.glide.integration.okhttp3.OkHttpGlideModule" android:value = "GlideModule" />
glide推荐的是okhttp3还有下面这样的,我当时遇到的坑
android:name = "com.bumptech.glide.integration.okhttp.OkHttpGlideModule"
你可以打开外部库查看具体是哪个包下面
2.拷贝出去源码,自定义我们自己的2个类,
okhttpGlideModule 会去找okhttpUrlLoader一定要改引用的包名,让它去找我们自己定义的第二个类okhttpUrlLoader



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值