兼容Glide4.0 以上版本 加载https 图片问题
@GlideModule
public class OkHttpAppGlideModule extends AppGlideModule {@Overridepublic void registerComponents(Context context, Glide glide, Registry registry) {OkHttpClient client = UnsafeOkHttpClient.getUnsafeOkHttpClient();registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(client));}
}
UnsafeOkHttpClient.Class
public class UnsafeOkHttpClient {public static OkHttpClient getUnsafeOkHttpClient() {try {// Create a trust manager that does not validate certificate chainsfinal TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {@Overridepublic void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {}@Overridepublic void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType){}@Overridepublic java.security.cert.X509Certificate[] getAcceptedIssuers() {return new java.security.cert.X509Certificate[]{};}}};// Install the all-trusting trust managerfinal SSLContext sslContext = SSLContext.getInstance("SSL");sslContext.init(null, trustAllCerts, new java.security.SecureRandom());// Create an ssl socket factory with our all-trusting managerfinal SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();OkHttpClient.Builder builder = new OkHttpClient.Builder();builder.sslSocketFactory(sslSocketFactory, (X509TrustManager) trustAllCerts[0]);builder.hostnameVerifier(new HostnameVerifier() {@Overridepublic boolean verify(String hostname, SSLSession session) {return true;}});builder.connectTimeout(20, TimeUnit.SECONDS);builder.readTimeout(20, TimeUnit.SECONDS);OkHttpClient okHttpClient = builder.build();return okHttpClient;} catch (Exception e) {throw new RuntimeException(e);}}
}