最近在跟后台交互的时候发现,后台基于安全考虑使用了https的通信。但是当安卓端使用OkHttp框架像平时一般请求访

问网络时则会出现如下错误:

javax.net.ssl.SSLHandshakeException:
  java.security.cert.CertPathValidatorException: 
  Trust anchor for certification path not found. 
查阅了很多资料后我才发现,这是网站证书的认证存在安全问题。在看了很多代码之后,我将其汇总在一个HttpUtils工具类中,以方便使用。
具体解决方法如下:
public static OkHttpClient getUnsafeOkHttpClient() throws NoSuchAlgorithmException,KeyManagementException {try {TrustManager[] trustAllCerts = new TrustManager[] {new X509TrustManager() {@Overridepublic void checkClientTrusted(X509Certificate[] x509Certificates, String s)throws CertificateException {}@Overridepublic void checkServerTrusted(X509Certificate[] x509Certificates, String s)throws CertificateException {}@Overridepublic X509Certificate[] getAcceptedIssuers() {return new X509Certificate[0];}}} ;final SSLContext sslContext = SSLContext.getInstance("SSL");sslContext.init(null, trustAllCerts, new SecureRandom());final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();OkHttpClient.Builder builder = new OkHttpClient.Builder();builder.sslSocketFactory(sslSocketFactory);builder.hostnameVerifier(new HostnameVerifier() {@Overridepublic boolean verify(String s, SSLSession sslSession) {return true;}});return builder.build();} catch (Exception e) {throw new RuntimeException(e);}}

这个方法返回了一个OkHttpClient对象,并且为其实现了对所有网站证书安全性的认证,以此对象去访问网络便可以解决上述错误。

基于OkHttp访问网络时出现的网站证书认证问题相关推荐

  1. 开题报告———基于Python的网络爬虫的电影网站设计与实现

    摘要 当代万维⽹和互联⽹技术发展迅猛,有时候在浏览某些⽹页.相册或者某些图⽚⽹站时,发现很多图⽚都很喜欢想要下载到本地,但是数量较多时操作会过于繁琐.此爬⾍软件是为了使⽤户能够便捷的获取并下载某些⽹站 ...

  2. HTTP中常见的状态码代表的意思比如202、303、404、505、访问网络时有时经常见的状态,也是面试题中关于HTTP经常出现的

    总结一下常见的HTTP状态码 2开头 (请求成功)表示成功处理了请求的状态代码. 200   (成功)  服务器已成功处理了请求. 通常,这表示服务器提供了请求的网页.  201   (已创建)  请 ...

  3. 一個简单的okhttp访问网络的例子

    private void phoneLogin() {OkHttpClient okHttpClient = new OkHttpClient.Builder().connectTimeout(10, ...

  4. 关于AndroidStudio声明了网络访问权限却无法访问网络的问题

    参考书目<第一行代码>第二版 AndroidStudio版本:3.5.2 SDK版本:Android9.0 在尝试访问网络时使用Okhttp(4.1.0)代码如下: private voi ...

  5. Java基于JSP的网络音乐KTV点歌电台网站

    随着我国网民的增加,也促进了网络音乐电台的开发.随着网络技术的发展,人们在利用网络学习的同时,也在享受着网络带来的各种附带产品所产生的效应,如网络游戏,网络歌曲.网络音乐电台正是在这样的需求前提下应运 ...

  6. 基于JSP的网络音乐KTV点歌电台网站

    随着我国网民的增加,也促进了网络音乐电台的开发.随着网络技术的发展,人们在利用网络学习的同时,也在享受着网络带来的各种附带产品所产生的效应,如网络游戏,网络歌曲.网络音乐电台正是在这样的需求前提下应运 ...

  7. 【自签名证书】如何解决访问蓝鲸平台时,提示网站不安全问题?

    上一篇文章中我们介绍了HTTPS中用到的证书了,也知道对于我们开发者来说最常用到的其实是自签名证书,可自签名证书也不是能随便生成的. 如果还没读过的可以点击HTTPS那些事儿(一),网络中的身份证-- ...

  8. 加入域时提示“不能访问网络位置” 域

    在加入域时又出现了"不能访问网络位置"的错误 . 在排除了网络连接和帐号密码的错误后,发现问题只可能是操作系统上的. 通过微软的问题数据库发现,解决方法如下: 当您尝试加入域时,出 ...

  9. RH358访问基于块的网络存储--自动化配置iSCSI initiator

    RH358访问基于块的网络存储–自动化配置iSCSI initiator 本章节介绍如何使用Ansible连接iSCSI存储和管理. RH358专栏地址:https://blog.csdn.net/q ...

最新文章

  1. React 组件绑定点击事件,并且传参完整Demo
  2. leetcode 790. Domino and Tromino Tiling | 790. 多米诺和托米诺平铺(暴力递归->DP)
  3. Fiori里的exception继承
  4. java设计模式之责任链模式以及在java中作用
  5. js后退页面不重新加载_快应用:支持加载单独JS文件的规范思考
  6. Win7(x64)升级到Win10
  7. USB Storage启动EBox4300
  8. Flickr 网站架构分析(转)
  9. openldap中的Mirror mode模式中的主主同步
  10. python scripting for arcgis_Python Scripting for ArcGIS Pro
  11. 怎样黑进Microsoft:循序渐进指南 (转)
  12. 如何自定义el-dialog的具体宽度,而不影响页面内的其他el-dialog的宽度
  13. 软件测试培训班靠谱吗?一般多少钱?
  14. Cocos适配带虚拟导航栏手机(HUAWEI 荣耀6 Plus)
  15. AML8726调试记录
  16. 大数据开发——Hive实战案例
  17. 新一代音视频架构在元宇宙场景的实践
  18. 论文阅读-工作流搭建尝试try1:Readcube+Obsidian
  19. Steam热门游戏《帝国神话》分享:如何用UE4打造大型开放世界生存沙盒网游?
  20. 图灵社区 : 阅读 : (一)开始准备

热门文章

  1. 区块链(Blockchain)-应用场景
  2. 协同过滤与隐语义模型推荐系统实例3: 基于矩阵分解(SVD)的推荐
  3. nginx反向代理(请求转发-URL匹配规则)
  4. Nginx-学习nginx这一篇就够了、版本平滑升级
  5. CC1310手册的射频核心介绍
  6. lj245a引脚功能图_a3120光耦各脚功能图介绍
  7. 【opencv学习笔记】003之图像像素基本操作(获取像素指针、范围处理)及掩膜操作(filter2D)详解
  8. 为电子版微积分算一算经济账
  9. C++高阶 返回值优化--RVO和NRVO介绍
  10. Python——异步编程案例