码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Glide加载https图片时 忽略证书校验


    Glide不同版本,自定义okhttp的方法不同
    这里仅仅提供两个版本 v3.7.0 和v 4.12.0

    v3.7.0是比较简单的

    依赖

    1. implementation 'com.github.bumptech.glide:glide:3.7.0'
    2. implementation 'com.github.bumptech.glide:okhttp-integration:1.3.1'

    Application配置

    1. public class AppStart extends Application {
    2. @Override
    3. public void onCreate() {
    4. super.onCreate();
    5. // Glide3.7.0 okhttp-integration:1.3.1
    6. Glide.get(this).register(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(getOkHttpClient()));
    7. }
    8. public OkHttpClient getOkHttpClient () {
    9. try {
    10. // Create a trust manager that does not validate certificate chains
    11. final TrustManager[] trustAllCerts = new TrustManager[]{
    12. new X509TrustManager() {
    13. @Override
    14. public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {
    15. }
    16. @Override
    17. public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) {
    18. }
    19. @Override
    20. public java.security.cert.X509Certificate[] getAcceptedIssuers() {
    21. X509Certificate[] x509Certificates = new X509Certificate[0];
    22. return x509Certificates;
    23. }
    24. }
    25. };
    26. // Install the all-trusting trust manager
    27. final SSLContext sslContext = SSLContext.getInstance("SSL");
    28. sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
    29. // Create an ssl socket factory with our all-trusting manager
    30. final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
    31. OkHttpClient okHttpClient = new OkHttpClient();
    32. okHttpClient.setSslSocketFactory(sslSocketFactory);
    33. okHttpClient.setProtocols(Arrays.asList(Protocol.HTTP_1_1));
    34. okHttpClient.setHostnameVerifier((hostname, session) -> true);
    35. return okHttpClient;
    36. } catch (Exception e) {
    37. throw new RuntimeException(e);
    38. }
    39. }
    40. }

    使用

    1. public class MainActivity extends AppCompatActivity {
    2. @Override
    3. protected void onCreate(Bundle savedInstanceState) {
    4. super.onCreate(savedInstanceState);
    5. setContentView(R.layout.activity_main);
    6. ImageView imageView=findViewById(R.id.iv_logo);
    7. String path="";
    8. Glide.with(this).load(path).into(imageView);
    9. }
    10. }

    传送门 https://gitee.com/Pino_W/glide3.7_custom_okhttp.git

    v4.12.0 自定义ok相对麻烦点 代码就不贴了 直接下载demo跑起来

    传送门 https://gitee.com/Pino_W/glide4.12_custom_okhttp.git

  • 相关阅读:
    C++保留小数点后两位(floor&ceil&round)详解
    消息队列选型方案
    力扣 | 2582递枕头 | 取余?滑动窗口?异曲同工?
    vue - 大文件分片上传之simple-uploader.js的使用
    【备战“金九银十”】2022年软件测试面试题最新汇总
    Markdown
    uniapp AES加密解密
    leetcode做题笔记128. 最长连续序列
    北斗GPS网络时钟系统(子母钟系统)助力智慧教室建设
    @vue/cli创建项目遇到ERROR Failed to get response from /vue-cli-version-marker 解决方法
  • 原文地址:https://blog.csdn.net/fengyeNom1/article/details/126949328
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号