Java爬取数据时,遇到.SunCertPathBuilderException: unable to find valid certification path to requested targe

在写网站爬虫时,运行遇到如下报错:

这里核心报错信息:

.SunCertPathBuilderException: unable to find valid certification path to requested target

解决方案为:

本人从网上查到了解决方案有两种,一种是直接绕过SSL证书认证,不过网上好多人都说不安全,原理嘛咱也不深究了,因为就爬取一些公开数据,又不涉及隐私啥的,电脑也是个人空白电脑无任何隐私数据所以暂不考虑安全问题,这是前提。可以快速解决当下的问题。
另外一种是从目标网站上下载证书到本地,然后添加证书到本地证书库。相对复杂很多,小白不建议尝试,因为当你在搜到这篇帖子的时候肯定是想快速解决问题,有兴趣的可以去查一下,教程很多。
个人观点,勿杠。

将下面的代码放到你的Java类里面,哪里都行,作为一个Java方法可以被调用到就可以。
在访问或者调用目标网站的Java方法前,先调用这个方法:initTSL(); 就可以了。亲测有效。

	/**
     * 绕过HTTPS验证
     */
    static public void initTSL() {
        try {
            SSLContext context = SSLContext.getInstance("TLS");
            context.init(null, new X509TrustManager[]{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];
                }
            }}, new SecureRandom());
            HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());
        } catch (NoSuchAlgorithmException | KeyManagementException e) {
            //处理异常
            e.printStackTrace();
        }
    }
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这个错误通常是由于Android Studio无法找到有效的证书路径导致的。根据引用\[2\]的分析,这个问题可能是由于Android Studio默认只能以http://的形式进行网络访问,而当以https://的形式去拉依赖包会产生冲突,无法访问相应的网址,从而导致无效证书的错误。解决方法是将阿里云云仓镜像包的地址改为https://。\[2\] 另外,根据引用\[3\]的建议,还可以尝试以下两种方法解决这个问题: 1. 导入阿里云仓库的证书,并可以考虑将Google和JCenter的证书也加上。 2. 更换Android Studio编译使用的JAVA环境,不使用Android Studio自带的,而是使用电脑中其他的JDK。 综上所述,你可以尝试以上方法来解决"unable to find valid certification path to requested target"的问题。 #### 引用[.reference_title] - *1* *3* [【干货】解决AndroidStudio报错Cause: unable to find valid certification path to requested target](https://blog.csdn.net/qq_21154101/article/details/107886617)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [遇到Cause: unable to find valid certification path to requested target的另一种解决思路](https://blog.csdn.net/weixin_43622246/article/details/104905486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rain-C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值