kotlin
api 'com.squareup.okhttp3:okhttp:4.9.3'
implementation 'com.github.bumptech.glide:glide:4.13.0'
implementation 'com.github.bumptech.glide:annotations:4.13.0'
kapt 'com.github.bumptech.glide:compiler:4.13.0'
implementation 'com.github.bumptech.glide:okhttp3-integration:4.13.0'
老样子
<meta-data
android:name="com.xxx.util.httpsUtil.OkHttpAppGlideModule"
android:value="AppGlideModule" />
@GlideModule
public class OkHttpAppGlideModule extends AppGlideModule {
@Override
public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
LogUtils.zzz("OkHttpAppGlideModule");
// OkHttpClient client = UnsafeOkHttpClient.getUnsafeOkHttpClient();
OkHttpClient client = SafeOkHttpClient.getSafeOkHttpClient();
registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(client));
}
}
new OkHttpUrlLoader.Factory(client)
这边会报错,因为 Glide 和okhttp版本不匹配,如果想不报错,改为api 'com.squareup.okhttp3:okhttp:3.14.1'
,搞不懂为什么类型不一样,项目都能跑起来
以 OkGo
举例
//方法四:使用bks证书和密码管理客户端证书(双向认证),使用预埋证书,校验服务端证书(自签名证书)
HttpsUtils.SSLParams sslParams4 = getSSLParams();
public static HttpsUtils.SSLParams getSSLParams() throws IOException {
return HttpsUtils.getSslSocketFactory(
TUPApplication.getApplication().getAssets().open("client.bks"),
"xxxxx");
}
这边用的是OkGo
生成的OkHttpClient
对象,如果用的不是OkGo
那么就去看下 OkHttp
如何生成OkHttpClient
public class SafeOkHttpClient {
public static OkHttpClient getSafeOkHttpClient() {
return OkGo.getInstance().getOkHttpClient();
这边我们后台给的 client.p12
证书,需要转换为 client.bks
(GitHub有工具 portecle-1.11.zip ,使用最新版才可以),密码跟后台要一下,反正 https 也要走这一步