美文网首页
Glide4.8兼容Https

Glide4.8兼容Https

作者: 心安1989 | 来源:发表于2020-06-28 16:48 被阅读0次

    1导包-OkHttp3

        api "com.github.bumptech.glide:okhttp3-integration:4.0.0-RC1"
    

    2 OkHttpAppGlideModule

    @GlideModule
    public class OkHttpAppGlideModule extends AppGlideModule {
    
        @Override
        public void registerComponents(Context context, Glide glide, Registry registry) {
            OkHttpClient client = UnsafeOkHttpClient.getUnsafeOkHttpClient();
            registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(client));
        }
    }
    
    

    3 UnsafeOkHttpClient

    package xxx;
    import java.util.concurrent.TimeUnit;
    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;
    import okhttp3.OkHttpClient;
    /**
     * description :UnsafeOkHttpClient .
     * author: wangxinan
     * date: 2020/6/23
     */
    public class UnsafeOkHttpClient {
        public static OkHttpClient getUnsafeOkHttpClient() {
            try {
                // Create a trust manager that does not validate certificate chains
                final TrustManager[] trustAllCerts = new TrustManager[]{
                        new X509TrustManager() {
                            @Override
                            public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {
                            }
    
                            @Override
                            public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType){
                            }
    
                            @Override
                            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                                return new java.security.cert.X509Certificate[]{};
                            }
                        }
                };
    
                // Install the all-trusting trust manager
                final SSLContext sslContext = SSLContext.getInstance("SSL");
                sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
    
                // Create an ssl socket factory with our all-trusting manager
                final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
    
                OkHttpClient.Builder builder = new OkHttpClient.Builder();
                builder.sslSocketFactory(sslSocketFactory);
                builder.hostnameVerifier(new HostnameVerifier() {
                    @Override
                    public 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);
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:Glide4.8兼容Https

          本文链接:https://www.haomeiwen.com/subject/hcuwfktx.html