解决forest低版本请求不安全的网站出现SSL认证不通过问题

news2024/9/24 11:26:54

文章目录

  • 前言
  • 解决问题的步骤
    • 1、当然是百度
    • 2、官网
    • 3、看源码
    • 4、GPT
    • 5、直接去gitee上看源代码的问题
  • 解决一
  • 解决二

前言

先说结论:无法解决

那既然无法解决,为啥还要写这样一篇文章呢,是因为这个问题我弄了一天多,我觉得有必要记录一下;

同时后面也是使用了hutool 的http作为代替方案,也是因为在hutool的官网没有特意标明,所以这也是一个理由吧!

解决问题的步骤

简单点说,就是公司系统,只允许使用forest1.5.24版本,不允许升级版本,所以在请求接口的时候遇到了ssl认证不通过的问题,即:

image-20230710143913008

1、当然是百度

image-20230710144447525

我的期望是,在forest的基础上配置,一搜,有绕过ssl的,但丝毫未提过forest,所以直接放弃;

2、官网

forest官网

在官网中我们可以看见有关于SSL的配置,但最低版本是1.5.28,死马当活马医,配置自定义的SSLSocketFactory,然后使用@SSLSocketFactoryBuilder(MySSLSocketFactoryBuilder.class)

image-20230710145744994

然后就没然后了,如果有用我上面也不会说解决不了了,这个只是针对后续版本的

3、看源码

查看源码得知,它提供了一个单向的绕过ssl认证的方法,既:

image-20230710150050353

然后也没然后,没卵用,我可以确定我姿势没问题

4、GPT

GPT信息停滞在2021,所以在它的认知中,最新版本是1.5.12版本,不知道是不是这个原因,它提供了一大堆根本不存在的方法和错误姿势给我,怀疑人生:

image-20230710150540398

image-20230710150549473

吐了,直接抛弃

5、直接去gitee上看源代码的问题

image-20230710150851347

大家可以自行去看看,我都试过了,无解,没卵用,然后我自己也提出一个问题以及私信:

image-20230710150939220

image-20230710152114821

forest的作者直接推荐升级版本,可问题就是不能升级哦,到这我就直接抛弃使用forest,采用别的方式

解决一

如果你的版本是可以升级的,无需考虑兼容性的话,建议直接升级到>=1.5.26版本,原因在1.5.26版本之后就默认自动绕过SSL验证了:

image-20230710151234512

解决二

使用别的Http框架,有apache,原生的、feign、hutool、。。。,我使用的是hutool的,就图方便:

基础操作官网都有,使用HttpUtil或者HttpRequest,这里需要指明的是下载文件,带参数,带请求头,官网没指出,其实也是使用HttpRequest:

import cn.hutool.core.io.FileUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;

import java.io.File;

public class FileDownloadExample {
    public static void main(String[] args) {
        HttpRequest request = HttpRequest.get("文件的URL");
        request.header("Header1", "Value1");  // 设置请求头
        request.form("param1", "value1");  // 设置参数

        HttpResponse response = request.execute();

        if (response.isOk()) {
            byte[] fileBytes = response.bodyBytes();
            File file = new File("保存路径");
            FileUtil.writeBytes(fileBytes, file);
            
            // 文件下载完成,可以使用file对象进行操作
            System.out.println("文件保存成功:" + file.getAbsolutePath());
        } else {
            System.out.println("请求失败,状态码:" + response.getStatus());
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/739152.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot开启子线程执行任务

目录 一、EnableAsync 二、Async 三、测试 一、EnableAsync 二、Async Service public class IotLocationServiceImpl {Asyncpublic void testA() {try {// 模拟阻塞Thread.sleep(5000);System.out.println("子线程执行完毕");} catch (InterruptedException e) {…

WPS Office AI实战:智能表格化身智能助理

前面我们已经拿 WPS AI 对Word文字、PPT幻灯片、PDF 做了开箱体验,还没有看过的小伙伴,请翻看以前的文章,本文开始对【智能表格】进行AI开箱测验。 表格在日常的数据处理中占绝对地位,但表格处理并不是每一个人都擅长,…

《向量数据库指南》——Milvus 中的向量索引概览和平面索引

目录 Milvus 中的向量索引 索引概览 平面索引 在之前的教程中,我们简单介绍了单词 Embedding 示例,了解了 Embedding 的强大,以及如何在向量数据库中进行向量存储和索引。此外,我们也简单介绍了最近邻搜索算法,这个问题涉及根据所选距离度量找到距离查询向量最接近的向…

spring boot+MySQL智慧食堂”设计与实现(包论文)

“智慧食堂”系统运用springboot框架开发,MIS的总体思想,以及MYSQL等技术的支持下共同完成了该系统的开发,实现了“智慧食堂”系统管理的信息化,使用户体验到更优秀的“智慧食堂”管理系统,管理员管理操作将更加方便&a…

青岛大学_王卓老师【数据结构与算法】Week05_01_栈和队列的定义和特点1_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享, 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础…

常用排序,快速排序,归并排序算法讲解

文章目录 快速排序归并排序 排序有很多种算法,常听的十大排序有:冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序、希尔排序、计数排序、基数排序、桶排序。 这里只介绍两个常用的算法。 排序: 快速排序归并排序 你可能想知道…

python安装cartopy

1.安装cartopy 创建新环境:https://www.machinelearningplus.com/deployment/conda-create-environment-and-everything-you-need-to-know-to-manage-conda-virtual-environment/ conda create --name mlenv python3.7.5 激活环境后,安装cartopy包&#…

IDEA+springboot+mybatis+shiro+bootstrap+Mysql网上书店管理系统源码

IDEAspringbootmybatisshirobootstrapMysql网上书店管理系统 一、系统介绍1.环境配置 二、系统展示1. 首页2.图书详情3.登录4. 注册5. 购物车6. 个人信息7.我的订单8.填写订单9.用户管理10.添加用户11.店铺列表12.添加店铺13.角色列表14.添加角色15.权限管理16.店铺信息17.我的…

十、SkyWalking链路追踪

解决什么问题? 串联整个调用链路,快速定位问题。缕清服务之间的依赖关系。对各个微服务接口的进行性能分析。跟踪整个业务流程的调用处理顺序。 一、skywalking介绍 1、skywalking是什么? skywalking是一个国产开源框架,2015年…

wordpress 单页中子页面列表制作方法

一、目标&#xff1a; 1、父页面显示所有子页面&#xff0c;如果是子页面就显示子页面对应父页面下的所有子页面。 2、选中的子页面链接显示不一样的样式。 二、代码 <?php$current_page_id get_the_ID(); // 获取当前页面的ID// 判断当前页面是否为父页面$is_parent_…

[数据结构 -- 手撕排序第三篇] 冒泡排序

目录 1、常见的排序算法 1.1 交换排序基本思想 2、冒泡排序的实现 2.1 基本思想 2.2 单趟排序 2.2.1 单趟排序分析 2.2.2 单趟排序实现代码 3、冒泡排序完整代码实现 3.1 思路分析 3.2 代码实现 4、时间复杂度 5、优化算法 5.1 优化算法思路 5.2 优化算法代码实现…

【Linux网络】网络基础(一)

Linux网络基础 1 网络背景1.1 网络发展1.2 局域网和广域网 2 认识“协议”2.1 网络协议分层&#xff08;高内聚&#xff0c;低耦合思想&#xff09;2.1.1 高内聚&#xff0c;低耦合简单理解2.1.2 协议分层的简单例子 3 OSI七层模型3.1 TCP/IP五层&#xff08;或四层&#xff09…

前端LayUI框架快速上手实现登入注册

目录 一、Layui简介 1. 什么是LayUI 2. LayUI的特点 二、LayUI入门 1. LayUI下载 2. LayUI入门使用 1. 在web项目中导入LayUI文件中的layui文件 2. 在JSP页面引入css、js文件 3. 制作一个简单的猜字游戏 4.效果展示 三、Layui实现简单登入功能 环境搭建 一、Layui简…

spring boot+MySQL实现班级综合测评管理系统

随着电子技术的普及和快速发展&#xff0c;线上管理系统被广泛的使用&#xff0c;有很多事业单位和商业机构都在实现电子信息化管理&#xff0c;班级综合测评管理也不例外&#xff0c;由比较传统的人工管理转向了电子化、信息化、系统化的管理。 传统的班级综合测评管理系统&am…

运维工具的学习(1)--Curl

1.1 curl简介 ​Curl是一个非常实用的、用来与服务器之间传输数据的工具&#xff1b;支持的协议包括 (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP)&#xff0c;curl设计为无用…

Kafka入门,offset的默认维护位置(二十一)

offset的默认维护位置 0.9版本之前&#xff1a;consumer默认将offset保持在zookeeper中 从0.9版本开始&#xff0c;consumer默认将offset保存在kafka一个内置的topic中&#xff0c;该topic为__consumer_offsets __consumer_offsets 主题里面采用key和value方式存储数据&#x…

【谷粒学院】NUXT框架

一、服务端渲染技术NUXT 1、什么是服务端渲染 服务端渲染又称SSR (Server Side Render)是在服务端完成页面的内容&#xff0c;而不是在客户端通过AJAX获取数据。 服务器端渲染(SSR)的优势主要在于&#xff1a;更好的 SEO&#xff0c;由于搜索引擎爬虫抓取工具可以直接查看完全…

【分布式应用】ELK 企业级日志分析系统

目录 一、ELK概述1.1、ELK 简介1.2 为什么要使用 ELK1.3完整日志系统基本特征1.4 ELK 的工作原理 二、ELK Elasticsearch 集群部署2.1环境准备2.2&#xff0e;部署 Elasticsearch 软件2.3安装 Elasticsearch-head 插件&#xff08;1&#xff09;编译安装 node&#xff08;2&…

任务六:LTE-Advanced 关键技术

LTE-Advanced 关键技术 一、载波聚合&#xff08;Carrier aggregation&#xff0c;CA&#xff09;二、多天线增强&#xff08;Enhanced Multiple Antenna Transmission&#xff09;1、上行多天线增强2、下行多天线增强。 三、协作多点传输&#xff08;Coordinated Multiple Poi…

buu刷题Reverse总结

[FlareOn1]Bob Doge 是一个C#编写的程序&#xff0c;在dnspy中打开&#xff0c;找到主函数&#xff0c;可以看到大致逻辑 不知道dat_secret的值&#xff0c;动态调试看看 DnSpy动态调试&#xff1a; 在主函数中添加断点&#xff0c;调试&#xff0c;因为本题的fag形式为&…