1.导入库
implementation 'com.github.bumptech.glide:glide:4.7.1'
implementation 'com.github.bumptech.glide:okhttp3-integration:4.6.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'#
2.配置ssl工具类
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
public class HttpsUtil {public static SSLSocketFactory getSslSocketFactory(){
try{
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, new TrustManager[]{new UnSafeTrustManager()}, new SecureRandom());
return sslContext.getSocketFactory();
} catch (NoSuchAlgorithmException e){
throw new AssertionError(e);
} catch (KeyManagementException e){
throw new AssertionError(e);
}
}public static class UnSafeHostnameVerifier implements HostnameVerifier {
@Override
public boolean verify(String hostname, SSLSession session){
return true;
}
}private static class UnSafeTrustManager implements X509TrustManager {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType)throws CertificateException {}@Override
public void checkServerTrusted(X509Certificate[] chain, String authType)throws CertificateException {}@Override
public X509Certificate[] getAcceptedIssuers(){
return new X509Certificate[]{};
}
}
3.重写AppGlideModule类,重写registerComponents方法
import android.content.Context;
import android.support.annotation.NonNull;
import com.bumptech.glide.Glide;
import com.bumptech.glide.Registry;
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.integration.okhttp3.OkHttpUrlLoader;
import com.bumptech.glide.load.model.GlideUrl;
import com.bumptech.glide.module.AppGlideModule;
import java.io.InputStream;
import java.util.concurrent.TimeUnit;
import okhttp3.OkHttpClient;
@GlideModule
public class GlideConfigModule extends AppGlideModule {
@Override
public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
OkHttpClient okhttpClient = new OkHttpClient.Builder()
.retryOnConnectionFailure(true) // 设置出现错误进行重新连接。
.connectTimeout(15, TimeUnit.SECONDS)
.readTimeout(60 * 1000, TimeUnit.MILLISECONDS)
.sslSocketFactory(HttpsUtil.getSslSocketFactory())
.hostnameVerifier(new HttpsUtil.UnSafeHostnameVerifier())
.build();
registry.replace(GlideUrl.class, InputStream.class,
new OkHttpUrlLoader.Factory(okhttpClient));
}}