HttpClient 加载本地证书发送请求

发布时间:2021-10-29 00:36:39

最*在做微信退款,需要加载本地证书,先上代码


public static String postXmlWithKey(String url, String xml, String cerPath, String mchId) throws Exception {
InputStream in = new FileInputStream(new File(cerPath));
KeyStore keyStore = KeyStore.getInstance("PKCS12");

try {
keyStore.load(in, mchId.toCharArray());
} finally {
in.close();
}

// Trust own CA and all self-signed certs
SSLContext sslcontext = SSLContexts.custom()
.loadKeyMaterial(keyStore, mchId.toCharArray())
.build();
// Allow TLSv1 protocol only
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
sslcontext,
new String[]{"TLSv1"},
null,
SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
CloseableHttpClient client = HttpClients.custom()
.setSSLSocketFactory(sslsf)
.build();

StringBuilder sb = new StringBuilder();
HttpPost httpPost = new HttpPost(url);
HttpEntity entity = null;

httpPost.setHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded");
try {

StringEntity payload = new StringEntity(xml, "UTF-8");
httpPost.setEntity(payload);
HttpResponse response = client.execute(httpPost);
entity = response.getEntity();
String text;
if (entity != null) {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(entity.getContent()));
while ((text = bufferedReader.readLine()) != null) {
sb.append(text);
}

}
} catch (Exception e) {
logger.error("与[" + url + "]通信过程中发生异常,堆栈信息如下", e.getCause());
} finally {
try {
EntityUtils.consume(entity);
} catch (IOException ex) {
ex.printStackTrace();
logger.error("net io exception");
}
}
return sb.toString();
}

然后分析这段代码


//封装操作
SSLContext sslcontext = SSLContexts
.custom()
.loadTrustMaterial(trustStore, new TrustSelfSignedStrategy()) //加载本地信任证书 信任自签名策略
.loadKeyMaterial(clientStore, "123456".toCharArray()) //加载本地证书
.build(); //构造
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext); //制造一个socket
httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build();

作者:送你一碗大麦茶
链接:https://www.jianshu.com/p/2ad576f5a4d6
?源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

?


?

相关文档

  • 理所应当怎样成语接龙
  • 治疗便秘最有效的方法是什么
  • 穿串链教学反思
  • 新农村建设工作经验交流材料
  • 企业办公室工作总结报告
  • 奶香椰蓉馅冰皮月饼的做法图解
  • python球球的体积保留两位小数_python中保留两位小数之反弹高度
  • 激励中考学生的文章
  • TCP服务器如何判断客户端Socket断开连接 - ZYNQ7021学习
  • 一文概述XGBoost、Light GBM和CatBoost的同与不同
  • Python学习笔记-创建工程
  • IPFS是创建DWeb应用程序中基础技术的领先者
  • 圣诞节联欢会闭幕词
  • 公司成立大会的邀请函
  • 哲学句子集锦
  • 公司励志名言格言
  • 华硕笔记本win10电脑没声音怎么办
  • 苹果手机的store不见了怎么办
  • 飞扬的泡泡断线的风筝
  • 如何用js求1~n的阶乘之和
  • 设计一个高并发系统
  • 工程的合同范本
  • 安静伤感心情个性签名
  • 淘宝禁止发布的商品是
  • 1、使用Docker部署Onlyoffice
  • 高中英语听力学习的技巧
  • 入党申请书写作提示和应注意的问题
  • 员工学习工匠精神心得体会
  • 2016高级经济师考试案例分析题练习答案
  • 我与蟑螂的缘分(转载)
  • 猜你喜欢

  • 二维气固两相混合层中固粒对流场影响的研究
  • 肠道杆菌的分离鉴定三ppt课件
  • 母亲节给妈妈的祝福语2020
  • 【最新推荐】营销助理实习日志范文-优秀word范文 (4页)
  • 我们的人生我们做主作文
  • 机械原理第8章平面连杆机构及其设计共45页文档
  • 区政府办公室2005年调研工作总结及2018年工作思路
  • 泰迪狗狗美容后的照片
  • 紫薇栽培养护技术
  • 寻找春天的足迹_小学作文_4
  • 北师大小学语文四年级下《六 眼睛:我只看见你的眼睛》 公开课教学课件_0
  • 2014届名师导学高考物理第一轮复*课件:第三章 牛顿运动定律 人教版
  • 如何跟收入比自己高的女生谈恋爱
  • 人教版八年级上册道德和法治课时作业第一课:丰富的社会生活(无答案)
  • 度米作文汇编之小学生作文100字乡村夜晚
  • 女孩梦想励志图片素材欣赏
  • 八年级语文下册课件18吆喝 (共19张PPT)
  • 六年级作文:新时代新发展作文1000字
  • 水口一中20102011学年度九年级化学上月考试题及答案
  • 自考日语 2001年10月试卷 浙江版
  • 幼儿园春游活动策划书
  • 【精品】2019-2020年度最新八年级英语上册Unit4 Topic1 Section B
  • 浅析如何从法律的角度来加强高校学生的管理工作
  • 河南豫兴网络科技有限公司环宇上网服务分公司企业信用报告-天眼查
  • image caption笔记(九):《Unsupervised Image Captioning》
  • 采购个人工作计划(完整版)
  • 铜仁市中通速递物流有限责任公司铜仁和*分公司企业信用报告-天眼查
  • 优秀合同协议范文:最新个人租房合同范本
  • 关于在培训机构学习与B站自学的问题
  • 人教版初中数学2011课标版九年级上册第二十四章22.1圆的有关性质(共17张PPT)
  • 化验员个人工作总结范文合集10篇
  • 头行固定的自由滑动表格的简单实现
  • 河北工业大学考研真题考研试题考研试卷
  • 一年级上册语文课件-11《雪地里的小画家》1ㄏ北师大版(2018) (共7张PPT)
  • 合伙投资合同样本
  • Node-RED, 一款基于流的低代码编程工具
  • 论高等学校信息公开制度
  • 2019届一轮复习化学人教版课件:铜+金属材料与金属矿物的开发利用ppt课件
  • 2019年最新-五年级上册英语课件-Unit 1 We have new friends Lesson 5-1_人教精通(2014秋)-精选文档
  • 电子配件生产制造项目投资申请报告
  • 大学生班级茶话会策划书
  • 【名师推荐资料】高中历史 第一单元 古代东方 第1课《古代两河流域》教案 华东师大版第一册
  • 电脑版