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认证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于logback实现纯java版本的SDK组件

    基于logback实现纯java版本的SDK组件

    这篇文章主要介绍了基于logback实现纯java版本的SDK组件,在项目开发过程中通常会使用logback作为日志记录的依赖工具,使用方式是引入logback相关jar包,然后配置logback.xml配置文件的方式来实现,需要的朋友可以参考下
    2023-11-11
  • java 设计模式之适配器模式的详解

    java 设计模式之适配器模式的详解

    这篇文章主要介绍了java 设计模式之适配器模式的详解的相关资料,需要的朋友可以参考下
    2017-07-07
  • Java如何实现通过证书访问Https请求

    Java如何实现通过证书访问Https请求

    这篇文章主要介绍了Java如何实现通过证书访问Https请求,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Java日常练习题,每天进步一点点(49)

    Java日常练习题,每天进步一点点(49)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-08-08
  • Java实现PDF导出功能的示例代码

    Java实现PDF导出功能的示例代码

    这篇文章主要为大家详细介绍了Java实现PDF导出功能的相关知识,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解下
    2023-09-09
  • MyBatis+MySQL 返回插入的主键ID的方法

    MyBatis+MySQL 返回插入的主键ID的方法

    本篇文章主要介绍了MyBatis+MySQL 返回插入的主键ID的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • Java之理解多态详解

    Java之理解多态详解

    大家好,本篇文章主要讲的是Java之理解多态详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Java 字符串的拼接详解

    Java 字符串的拼接详解

    本文主要介绍Java 字符串的拼接知识内容,这里整理了相关资料,及简单的示例代码,有兴趣的小伙伴可以参考下
    2016-08-08
  • 详解Java SSM项目部署上线配置方法(阿里云服务器ECS + 云数据库RDS MySQL)(宝塔)

    详解Java SSM项目部署上线配置方法(阿里云服务器ECS + 云数据库RDS MySQL)(宝塔)

    这篇文章主要介绍了Java SSM项目部署上线(阿里云服务器ECS + 云数据库RDS MySQL)(宝塔)的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2024-01-01
  • java基础之方法详解

    java基础之方法详解

    这篇文章主要介绍了java基础之方法详解,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04

最新评论