java中调用https请求忽略ssl证书认证代码示例

 更新时间:2024年10月26日 09:07:33   作者:新时代农民~  
在网络请求中经常会遇到需要忽略证书认证的情况,这篇文章主要介绍了java中调用https请求忽略ssl证书认证的相关资料,文中通过代码示例介绍的非常详细,需要的朋友可以参考下

1、获取httpclient,忽略证书认证

public static CloseableHttpClient createSSLClientDefault() {
        try {
            SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {
                // 信任所有证书
                public boolean isTrusted(X509Certificate[] arg0, String arg1)
                        throws CertificateException {
                    return true;
                }
            }).build();
            // 创建主机名验证器,用于绕过主机名验证
            HostnameVerifier hostnameVerifier = NoopHostnameVerifier.INSTANCE;
            // 创建 SSL 连接套接字工厂,将自定义的 SSL 上下文和主机名验证器应用于 HTTPS 连接
            SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, hostnameVerifier);
            // 创建自定义的 CloseableHttpClient 实例,将 SSL 连接套接字工厂应用于 HTTP 客户端
            return HttpClients.custom().setSSLSocketFactory(sslsf).build();
        } catch (KeyManagementException e) {
            e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (KeyStoreException e) {
            e.printStackTrace();
        }
        return HttpClients.createDefault();
    }

2、使用put请求调用

   public static String put(String url, Map<String, String> header, String param) throws Exception {
        String result = "";
        StringEntity entity = new StringEntity(param, "utf-8");
        CloseableHttpClient httpClient = null;
        try {
            httpClient = createSSLClientDefault();
            HttpPut httpPut = new HttpPut(url);
            if (MapUtils.isNotEmpty(header)) {
                for (Map.Entry<String, String> entry : header.entrySet()) {
                    httpPut.addHeader(entry.getKey(), entry.getValue());
                }
            }
            if (entity != null) {
                entity.setContentType("application/json; charset=utf-8");
                httpPut.setEntity(entity);
            }
            LogUtil.info("开始请求https接口:" + url );
            HttpResponse httpResponse = httpClient.execute(httpPut);
            LogUtil.info("put请求返回httpResponse结果:" + httpResponse);
            HttpEntity resEntity = httpResponse.getEntity();
            result = EntityUtils.toString(resEntity, "UTF-8");
            LogUtil.info("put请求返回结果:" + result);
        } catch (Exception e) {
            throw e;
        } finally {
            if (httpClient != null) {
                httpClient.close();
            }
        }
        return result;
    }

总结 

到此这篇关于java中调用https请求忽略ssl证书认证的文章就介绍到这了,更多相关java调用https请求忽略ssl认证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java报错Non-terminating decimal expansion解决分析

    Java报错Non-terminating decimal expansion解决分析

    这篇文章主要为大家介绍了Java报错Non-terminating decimal expansion解决方案及原理分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • java学生管理系统界面简单实现(全)

    java学生管理系统界面简单实现(全)

    这篇文章主要为大家详细介绍了java学生管理系统界面的简单实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Spring Cloud Feign实例讲解学习

    Spring Cloud Feign实例讲解学习

    这篇文章主要介绍了Spring Cloud Feign实例讲解学习,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • java进行文件读写操作详解

    java进行文件读写操作详解

    这篇文章主要介绍了java进行文件读写操作详解的相关资料,需要的朋友可以参考下
    2014-10-10
  • java 中String和StringBuffer与StringBuilder的区别及使用方法

    java 中String和StringBuffer与StringBuilder的区别及使用方法

    这篇文章主要介绍了java 中String和StringBuffer与StringBuilder的区别及使用方法的相关资料,在开发过程中经常会用到String 这个类进行操作,需要的朋友可以参考下
    2017-08-08
  • 在IDEA中使用debug工具去运行java程序的实现步骤

    在IDEA中使用debug工具去运行java程序的实现步骤

    调试工具(debug工具)是一种用于帮助程序员识别和修复程序中的错误的工具,它们提供了一系列的功能,帮助程序员在代码执行的过程中跟踪和检测问题,本文将给大家介绍使用debug工具去运行java程序的实现步骤,需要的朋友可以参考下
    2024-04-04
  • SpringBoot文章定时发布的技术方案详解(三种延迟任务方案)

    SpringBoot文章定时发布的技术方案详解(三种延迟任务方案)

    本文介绍了三种实现文章定时发布在SpringBoot项目中的技术方案:JDKDelayQueue、基于RabbitMQ延迟队列以及基于Redis有序集合,每种方案都有其特点和适用场景,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • 详解SpringMVC中的四种跳转方式、视图解析器问题

    详解SpringMVC中的四种跳转方式、视图解析器问题

    这篇文章主要介绍了SpringMVC的四种跳转方式、视图解析器,springmvc核心配置文件和视图解析器的使用,添加视图解析器,通过案例讲解四种跳转方式,需要的朋友可以参考下
    2022-10-10
  • 手动部署java项目到k8s中的实现

    手动部署java项目到k8s中的实现

    本文主要介绍了手动部署java项目到k8s中的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Java线程(Thread)四种停止方式代码实例

    Java线程(Thread)四种停止方式代码实例

    这篇文章主要介绍了Java线程(Thread)四种停止方式代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03

最新评论