glide4.0|glide4.0 支持https

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)); }}

    推荐阅读