前言
先说结论:无法解决
那既然无法解决,为啥还要写这样一篇文章呢,是因为这个问题我弄了一天多,我觉得有必要记录一下;
同时后面也是使用了hutool 的http作为代替方案,也是因为在hutool的官网没有特意标明,所以这也是一个理由吧!
解决问题的步骤
简单点说,就是公司系统,只允许使用forest1.5.24版本,不允许升级版本,所以在请求接口的时候遇到了ssl认证不通过的问题,即:
1、当然是百度
我的期望是,在forest的基础上配置,一搜,有绕过ssl的,但丝毫未提过forest,所以直接放弃;
2、官网
forest官网
在官网中我们可以看见有关于SSL的配置,但最低版本是1.5.28,死马当活马医,配置自定义的SSLSocketFactory,然后使用@SSLSocketFactoryBuilder(MySSLSocketFactoryBuilder.class)
然后就没然后了,如果有用我上面也不会说解决不了了,这个只是针对后续版本的
3、看源码
查看源码得知,它提供了一个单向的绕过ssl认证的方法,既:
然后也没然后,没卵用,我可以确定我姿势没问题
4、GPT
GPT信息停滞在2021,所以在它的认知中,最新版本是1.5.12版本,不知道是不是这个原因,它提供了一大堆根本不存在的方法和错误姿势给我,怀疑人生:
吐了,直接抛弃
5、直接去gitee上看源代码的问题
大家可以自行去看看,我都试过了,无解,没卵用,然后我自己也提出一个问题以及私信:
forest的作者直接推荐升级版本,可问题就是不能升级哦,到这我就直接抛弃使用forest,采用别的方式
解决一
如果你的版本是可以升级的,无需考虑兼容性的话,建议直接升级到>=1.5.26版本,原因在1.5.26版本之后就默认自动绕过SSL验证了:
解决二
使用别的Http框架,有apache,原生的、feign、hutool、。。。,我使用的是hutool的,就图方便:文章来源:https://www.toymoban.com/news/detail-544106.html
基础操作官网都有,使用HttpUtil或者HttpRequest,这里需要指明的是下载文件,带参数,带请求头,官网没指出,其实也是使用HttpRequest
:文章来源地址https://www.toymoban.com/news/detail-544106.html
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());
}
}
}
到了这里,关于解决forest低版本请求不安全的网站出现SSL认证不通过问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!