【java】hutool发送http请求,配置ssl忽略

news/2024/7/7 18:59:20

1.发送请求


import cn.hutool.http.HttpRequest;
/**
 * cf
 */
public class TqOdpServiceClient {

     private static String url="url";;
     public static String execute(String http,String params,String auth) {
         String result2 = HttpRequest.post(http+url)
                 .header("Authorization", auth)
                 .header("Content-Type", "application/json;charset=UTF-8").setSSLSocketFactory(SSLUtils.getSSLSocketFactory())
                 .body(params)
                 .execute().body();
         return result2;
     }
}

2.配置ssl忽略

/**
 * @author cf
 * @date 2023/7/3下午 1:06
 */
import javax.net.ssl.*;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;

public class SSLUtils {
    /**
     * 忽略https证书验证
     * @return
     */
    public static SSLSocketFactory getSSLSocketFactory() {
        try {
            SSLContext sslContext = SSLContext.getInstance("SSL");
            sslContext.init(null, getTrustManager(), new SecureRandom());
            return sslContext.getSocketFactory();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    private static TrustManager[] getTrustManager() {
        TrustManager[] trustAllCerts = new TrustManager[]{
                new X509TrustManager() {
                    //检查客户端证书,若不信任该证书抛出异常,咱们自己就是客户端不用检查
                    @Override
                    public void checkClientTrusted(X509Certificate[] chain, String authType) {
                    }
                    //检查服务器的证书,若不信任该证书抛出异常,可以不检查默认都信任
                    @Override
                    public void checkServerTrusted(X509Certificate[] chain, String authType) {
                    }
                    //返回受信任的X509证书数组
                    @Override
                    public X509Certificate[] getAcceptedIssuers() {
                        return new X509Certificate[]{};
                    }
                }
        };
        return trustAllCerts;
    }
}


http://lihuaxi.xjx100.cn/news/1313045.html

相关文章

深度学习-目标检测之边界框bbox坐标转换公式汇总

深度学习 文章目录 深度学习 尝试着写了一个可以转换任何维度的任意格式的bbox函数。 本程序目的是: 可以转换以下三种格式的输入数据 list,numpy,tensor,维度可以从0维到2维, 也就是shape为:(4,) (3, 4) torch.Size([4]) torch.…

【rtklibexployer】RTKLIB Static-start feature 静态启动模式

原文:RTKLIB: Static-start feature 静态启动模式是我不久前添加到 demo4 代码中的,但一直没来得及解释,所以我现在要做。 正如我以前提到的,我总是喜欢在第一次打开接收器后让接收机静止不动,以便在允许它移动之前获…

svn和git的使用杂谈

笔者毕业的4年一直都是使用svn,直到前面几个月换了工作,新单位用的git,愣是用了1-2个月的时间才缓过来;下面是笔者关于这两款代码管理工具使用的一点经验。 svn svn:使用简单,入门容易,就只有本地代码和远…

jenkins部署springboot项目

jenkins部署springboot项目 1、创建一个项目 上传到gitee 1、创建项目 2、上传到git 2、jenkins创建一个pipeline项目 Pipeline简介 1)概念 Pipeline,简单来说,一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者…

Markdown(6):段落缩进

Markdown 段落缩进 \qquad Markdown 是一种轻量级标记语言,创始人为约翰格鲁伯(John Gruber)。 它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者HTML)文档。这种语言吸收了很多在…

SSL证书中的对称加密是什么?有哪些算法

SSL证书中的对称加密是一种加密类型,它使用相同的密钥来加密和解密数据。发送者和接收者都具有相同的密钥副本,它们是秘密的,不会与任何人共享。这与非对称加密不同,后者使用两个密钥-一个公共密钥(任何人都可以访问&a…

CSS_calc() 函数内部怎么使用scss变量

使用 calc() 函数来计算主体元素的宽度,其中通过 #{} 语法将 SCSS 变量转换为 CSS 变量,然后使用加法运算符 和乘法运算符 * 来计算宽度值 $main-width: 100px; $main-padding: 10px;.main {width: calc(#{$main-width} #{$main-padding} * 2); }

新颖的文档、视频交互方式:以《GPT API Unofficial Docs》和《渐构》为例

一、背景 无意中看到一份 《GPT API 非官方文档》:https://gpt.pomb.us/ 被网站的交互方式所吸引,颇为新颖,值得借鉴。 左侧是对应的 API 代码调用示例,右侧是文档的每个部分,滑动到对应部分,左侧相关的代…