Android中Glide加载Https图片失败的解决方案

简介: Android中Glide加载Https图片失败的解决方案

1.在使用Glide前调用

Glide.get(this).getRegistry().replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(getNoCheckOkHttpClient()));

2.getNoCheckOkHttpClient方法如下

    public static OkHttpClient getNoCheckOkHttpClient() {
        SSLSocketFactory ssl = getNoCheckSSLSocketFactory();
        X509TrustManager trustManager = getTrustManager();
        return new OkHttpClient.Builder()
                .connectTimeout(TimeUnit.SECONDS.toMillis(30), TimeUnit.SECONDS)
                .readTimeout(TimeUnit.SECONDS.toMillis(30), TimeUnit.SECONDS)
                .writeTimeout(TimeUnit.SECONDS.toMillis(30), TimeUnit.SECONDS)
                .sslSocketFactory(ssl, trustManager)
                .hostnameVerifier((hostname, session) -> true)
                .retryOnConnectionFailure(true)
                .build();
    }
    public static SSLSocketFactory getNoCheckSSLSocketFactory() {
        try {
            SSLContext sslContext = SSLContext.getInstance("SSL");
            sslContext.init(null, new TrustManager[] {getTrustManager()}, new SecureRandom());
            return sslContext.getSocketFactory();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    /**
     * 获得信任管理器TrustManager,不做任何校验
     *
     * @return X509TrustManager
     */
    public static X509TrustManager getTrustManager() {
        return new X509TrustManager() {
            @Override
            public void checkClientTrusted(X509Certificate[] serverX509Certificates, String s) {}
 
            /**
             * 只支持正序或者逆序存放的证书链,如果证书链顺序打乱的将不支持 我们以下认定x509Certificates数组里从0-end如果是设备证书到ca root证书是正序的
             * 反之是倒序的
             */
            @Override
            public void checkServerTrusted(X509Certificate[] x509Certificates, String s) {}
 
            @Override
            public X509Certificate[] getAcceptedIssuers() {
                return new X509Certificate[0];
            }
        };
    }


目录
相关文章
|
1月前
|
Java Android开发
android 下载图片的问题
android 下载图片的问题
19 3
|
1月前
|
Android开发
Android通过手势(多点)缩放和拖拽图片
Android通过手势(多点)缩放和拖拽图片
20 4
|
1月前
|
安全 Android开发
Android之OKHttp基本使用和OKHttp发送https请求安全认证
Android之OKHttp基本使用和OKHttp发送https请求安全认证
64 0
|
15天前
|
JSON 编解码 Apache
Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
13 1
|
18天前
|
Java Android开发
18. 【Android教程】图片控件 ImageView
18. 【Android教程】图片控件 ImageView
14 4
|
15天前
|
前端开发 Java API
Android系统中读写和显示图片
Android系统中读写和显示图片
11 0
|
18天前
|
XML Java API
54. 【Android教程】图片资源:Drawable
54. 【Android教程】图片资源:Drawable
15 0
|
安全 网络安全 Android开发
|
1月前
|
前端开发
webpack如何设置devServer启动项目为https协议
webpack如何设置devServer启动项目为https协议
354 0
|
17天前
|
安全 前端开发 中间件
中间件中HTTP/HTTPS 协议
【6月更文挑战第3天】
16 3