android: glide: 访问https地址图片时报错

一,报错信息

 Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException:
Trust anchor for certification path not found.

如图:

二,解决

1,引入第三方库:

编辑build.gradle

implementation 'com.github.bumptech.glide:okhttp3-integration:4.12.0'

然后点击Sync Now

注意和okhttp的版本保持一致

2,代码:

在application的oncreate中添加:

    @Override
    public void onCreate() {
        super.onCreate();

        // 解决glide加载https证书问题
        try {
            Glide.get(this).getRegistry().replace(
                    GlideUrl.class, InputStream.class,
                    new OkHttpUrlLoader.Factory(getSSLOkHttpClient()));
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        // 在这里执行全局初始化
    }


    /**
     * 设置https 访问的时候对所有证书都进行信任
     *
     * @throws Exception
     */
    private OkHttpClient getSSLOkHttpClient() throws Exception {
        final X509TrustManager trustManager = new 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[0];
            }
        };

        SSLContext sslContext = SSLContext.getInstance("SSL");
        sslContext.init(null, new TrustManager[]{trustManager}, new SecureRandom());
        SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();

        return new OkHttpClient.Builder()
                .sslSocketFactory(sslSocketFactory, trustManager)
                .hostnameVerifier(new HostnameVerifier() {
                    @Override
                    public boolean verify(String hostname, SSLSession session) {
                        return true;
                    }
                })
                .build();
    }

 

三,测试效果

posted @ 2025-05-17 08:20  刘宏缔的架构森林  阅读(168)  评论(0)    收藏  举报