android edittext显示光标不闪烁_Android-Glide加载https图片时证书忽略/加载https链接的图片不显示的原因...

这里综合了下网友的写法,因为有些写法有点老,可能都不能正确编译。另外有些网友的代码又不全,最后综合各种,自己完善了相关的方法,也实现了图片的正确显示。

再Application里面去实现Glide的OkHttpClient的替换,让自定义的OkhttpClient忽略证书问题。

1. Application中调用如下替换方法(缺的方法,接着看哈) - 有些网友的方法可能有点老了,不是我这样的写法,我目前Glide版本是4.9.0,还算是比较新的哈..

    // 解决glide加载https证书问题
        try {
            Glide.get(this).getRegistry().replace(
                    GlideUrl.class, InputStream.class,
                    new OkHttpUrlLoader.Factory(getSSLOkHttpClient()));
        } catch (Exception e) {
            e.printStackTrace();
        }

2. 上面的OkHttpUrlLoader需要引入如下库 - 需要下面第三个引入

    // glide
    implementation 'com.github.bumptech.glide:glide:4.9.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
    implementation 'com.github.bumptech.glide:okhttp3-integration:4.9.0'

3. getSSLOkHttpClient方法实现 - 这也是目前比较新的写法,有些写法真的有点老哈!需要注意,可能当前环境你拿过去要出问题

   /**
     * 设置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();
    }

4. 这样就全了,顺便看哈都引入了哪些包

11ecd811e73e3ad6a4460669963d6955.png

参考啊: OkHttp升级记录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值