当前位置: 首页 > news >正文

Okhttp 发送https请求,忽略ssl认证

工具类


import lombok.extern.slf4j.Slf4j;import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.X509TrustManager;
import java.security.KeyStore;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;
import java.util.Arrays;@Slf4j
public class SSLSocketClient {// 获取SSLSocketFactorypublic static SSLSocketFactory getSSLSocketFactory() {try {SSLContext sslContext = SSLContext.getInstance("SSL");sslContext.init(null, getTrustManager(), new SecureRandom());return sslContext.getSocketFactory();} catch (Exception exception) {log.error("get SSLSocketFactory error", exception);}return null;}// 获取TrustManagerprivate static TrustManager[] getTrustManager() {return new TrustManager[]{new X509TrustManager() {@Overridepublic void checkClientTrusted(X509Certificate[] chain, String authType) {}@Overridepublic void checkServerTrusted(X509Certificate[] chain, String authType) {}@Overridepublic X509Certificate[] getAcceptedIssuers() {return new X509Certificate[]{};}}};}// 获取HostnameVerifierpublic static HostnameVerifier getHostnameVerifier() {return (s, sslSession) -> true;}public static X509TrustManager getX509TrustManager() {X509TrustManager trustManager = null;try {TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());trustManagerFactory.init((KeyStore) null);TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509TrustManager)) {throw new IllegalStateException("Unexpected default trust managers:" + Arrays.toString(trustManagers));}trustManager = (X509TrustManager) trustManagers[0];} catch (Exception exception) {log.error("get X509TrustManager error", exception);}return trustManager;}
}

使用okhttp

private final OkHttpClient client = new OkHttpClient().newBuilder().sslSocketFactory(SSLSocketClient.getSSLSocketFactory(), SSLSocketClient.getX509TrustManager()).hostnameVerifier(SSLSocketClient.getHostnameVerifier()).connectTimeout(60, TimeUnit.SECONDS).build();

http://www.lryc.cn/news/344299.html

相关文章:

  • IT项目管理-大题【太原理工大学】
  • 【代码随想录】day48
  • 【补充】1-auth的使用、扩写auth的user表、django支持缓存
  • 力扣-21. 合并两个有序链表-js实现
  • tensorflow报错
  • 企业数字化转型走向平台化运营会经历哪些阶段?
  • 最新AI实景自动无人直播软件教你实现24小时不下播带货;智能化引领直播新时代
  • 《二十一》QT QML编程基础
  • 免费的发票查验接口平台 PHP开发示例
  • 10、算数运算符(以 ‘/’、‘%’、‘++’为主去讲解)(Java超详细版本)
  • 向量数据库:PGVector
  • redux实现原理
  • 【go项目01_学习记录04】
  • HCIP第二节
  • Ubuntu MATE系统下WPS显示错位
  • Mysql进阶-索引篇
  • 【算法系列】哈希表
  • Git推送本地项目到gitee远程仓库
  • 一键复制:基于vue实现的tab切换效果
  • 新手做抖音小店,卖什么最容易出单?抖音必爆类目来了!
  • 男人圣经 10
  • 如何让路由器分配固定网段(网络号)ip
  • Q1保健品线上市场分析(三):牛初乳市场扩张,同比去年增长54%
  • 使用docker-compose编排Lnmp(dockerfile) 完成Wordpress
  • 母婴店运用商城小程序店铺的效果是什么
  • 大数据技术概述_2.大数据面临的5个方面的挑战
  • 《动手学深度学习(Pytorch版)》Task03:线性神经网络——4.29打卡
  • 机器学习(二) ----------K近邻算法(KNN)+特征预处理+交叉验证网格搜索
  • This error originates from a subprocess, and is likely not a problem with pip.
  • Python中关于子类约束的开发规范