java post、get请求第三方https接口
java post、get请求第三方https接口
前段时间做项目新加功能由于要对接其它系统,请求系统接口传输数据。写完后发现我写的这个方法和网上现有的例子有点不太一样,可能是因为我做的项目是政务网的原因,但我想正常的即便是互联网的系统请求方式也都是一样的,所以记录一下。如果有不符合的地方请各位看官指教。废话不多说直接上代码;
注:此代码仅为测试用例仅提供思路,如果需要还需要自己完善哦。
package szsydata;import cn.hutool.json.JSONUtil;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContextBuilder;
import org.apache.http.ssl.TrustStrategy;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Base64;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;/*** 测试用例*/
public class ReviewProcessDemoTest {private static final Logger logger = LoggerFactory.getLogger(ReviewProcessDemoTest.class);/*** 消息所属应用*/private static final String APP_NAME = "xxx";/*** 消息所属模块 须动态输入*/private static final String MODULE_NAME = "第三方接口要求固定的入参没有可以不要";private static final String ENTITY_NAME = "第三方接口要求固定的入参没有可以不要";//新增 根据文档填入ip和端口,我这里第三方接口不用加端口只用ip请求过去自动路由到真实地址private static final String URL = "https://第三方接口ip/app-portalsp/openapi/sys-notifybus/sysNotifyComponent/send";//列表private static final String URL_1 = "https://第三方接口ip/app-portalsp/openapi/sys-notify/baseSysNotify/findByPerson";private static final String URL_2 = "https://第三方接口ip/app-portalsp/openapi/sys-notifybus/sysNotifyComponent/supports";//已查看private static final String URL_3 = "https://第三方接口ip/app-portalsp/openapi/sys-notifybus/sysNotifyComponent/read";//置为已办private static final String URL_4 = "https://第三方接口ip/app-portalsp/openapi/sys-notifybus/sysNotifyComponent/done";//恢复代办private static final String URL_5 = "https://第三方接口ip/app-portalsp/openapi/sys-notifybus/sysNotifyComponent/resume";//移除private static final String URL_6 = "https://第三方接口ip/app-portalsp/openapi/sys-notifybus/sysNotifyComponent/removeTodo";public static void main(String[] args) {Map<String, Object> params = new HashMap<String, Object>();params.put("subject","请审批【测试真实地址跳转】");params.put("notifyType","todo");params.put("todoType","1");params.put("link","https://fw.fgw.sz.gov.cn/lscbwzsys/#/CBJH_Apply");params.put("appName",APP_NAME);params.put("moduleName",MODULE_NAME);//业务idparams.put("entityId","1e2hp5j4fw60v1fjgw3");params.put("entityName",ENTITY_NAME);//消息接收人,根据orgProperty指定的组织架构属性名填写接收人信息params.put("targets", Collections.singletonList("xxxxx"));params.put("notifyId","1e2hp5j4fw60v1fjgw3");//固定值params.put("orgProperty","fdLoginName");logger.info("请求参数为:{}",params);try {//获取浏览器信息CloseableHttpClient httpClient = createSSLClientDefault();//post请求HttpPost httpPost = new HttpPost(URL_6);//get请求 (入参数据格式可能和示例不一致需要自己调整)//HttpPost httpGet = new HttpGet(URL_6);//塞入请求头信息httpPost.setHeader("Authorization","Basic "+ Base64.getUrlEncoder().encodeToString(("szfmimp" + ":" + "P@ssw0rdtest").getBytes()));httpPost.setHeader("accept", "*/*");httpPost.setHeader("connection", "Keep-Alive");httpPost.setHeader("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");//请求数据格式为jsonStringEntity entity = new StringEntity(JSONUtil.toJsonStr(params), ContentType.create("application/json",StandardCharsets.UTF_8));//请求数据httpPost.setEntity(entity);HttpResponse response = httpClient.execute(httpPost);int statusCode = response.getStatusLine().getStatusCode();HttpEntity httpEntity = response.getEntity();String responseBody = EntityUtils.toString(httpEntity, StandardCharsets.UTF_8);System.out.println(responseBody);} catch (IOException ex) {throw new RuntimeException(ex);}}public static CloseableHttpClient createSSLClientDefault() {try {SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {// https请求信任所有@Overridepublic boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException {return true;}}).build();HostnameVerifier hostnameVerifier = NoopHostnameVerifier.INSTANCE;SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, hostnameVerifier);return HttpClients.custom().setSSLSocketFactory(sslsf).build();} catch (KeyManagementException e) {logger.error(e.getMessage(), e);} catch (NoSuchAlgorithmException e) {logger.error(e.getMessage(), e);} catch (KeyStoreException e) {logger.error(e.getMessage(), e);}return HttpClients.createDefault();}}
有不足之处还请指教!
相关文章:
java post、get请求第三方https接口
java post、get请求第三方https接口 前段时间做项目新加功能由于要对接其它系统,请求系统接口传输数据。写完后发现我写的这个方法和网上现有的例子有点不太一样,可能是因为我做的项目是政务网的原因,但我想正常的即便是互联网的系统请求方式…...
【C语言】鸡兔同笼,鸡和兔共 100 只,共 284 只脚,求鸡和兔的个数。
鸡兔同笼,鸡和兔共 100 只,共 284 只脚,求鸡和兔的个数。 int main() {for (int i 0; ; i){if (2 * i 4 * (100 - i) 284){printf("鸡的数量:%d,兔子的数量:%d", i, 100 - i);break;} } }这里直接算出题…...
沪漂8年回郑州三年如何走上创业之路
大家好,我是大牛,目前人在郑州。 现在标签是: 创业者🚗🐸 (注册有自己的公司,主要是为了自己的产品和接外包项目)独立开发者👨🏻💻 (有自己的小项目)数字游民&…...
MySQL数据库—事务与存储类型
一、事务: 1.事务的概念: 事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这组数据库命令要么都执行,要么都不执行。事务是一个不…...
蓝桥杯刷题8
1. 世纪末的星期 import java.util.Calendar; public class Main {public static void main(String[] args) {Calendar calendar Calendar.getInstance();for(int year 1999;year<100000;year100){calendar.set(Calendar.YEAR,year);calendar.set(Calendar.MONTH,11);cale…...
Java中的String字符串练习
目录 Java中的String字符串练习 01-用户登录 02-遍历字符串并统计字符个数 03-字符串拼接 04-字符串反转 注意点 05-金额转化(简单) 代码解释: 06-手机号屏蔽 07-身份证号码查看 易错点: 08-敏感词替换 01-用户登录 package com.xiaonan.exercise06;import java.u…...
基于JavaWeb SSM mybatis 学生信息管理系统设计和实现以及文档报告
基于JavaWeb SSM mybatis 学生信息管理系统设计和实现以及文档报告 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 …...
二进制源码部署mysql8.0.35
二进制部署mysql8.0.35 创建mysql用户 [rootzyq ~]#: useradd -r -s /sbin/nologin -M mysql [rootzyq ~]#: id mysql uid990(mysql) gid990(mysql) groups990(mysql)上传mysql文件 [rootzyq ~]#: ls anaconda-ks.cfg mysql-8.0.35-linux-glibc2.28-x86_64.tar.xz解压 [roo…...
PHP 读取嵌入式数据 SQLite3
SQLite3 属于轻量级开源的嵌入式关系型数据库,但它支持 ACID(Atomicity,Consistency,Isolation,Durability) 事务。 SQLite Download Page: https://www.sqlite.org/download.html 第一步:在 php.ini 中开启 extensionsqlite3 第二步:连接数…...
【代驾+顺风车+货运】全开源双端APP代驾+顺风车+货运代驾小程序源码
内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 一、详细介绍 系统是基于Thinkphpuniapp开发的,全开源未加密,这套源码可以拿回去自己做二开 后台用户端司机端 功能详情介绍: 车主实名认证,驾驶证认证,车…...
C++语言学习(三)—— 文件操作
目录 一、文件操作 1.1 打开文件 1.2 关闭文件 1.3 读取文件 1.4 写入文件 1.5 文件指针 1.6 文件状态 1.7 其他文件操作 二、文件操作函数 2.1 打开文件函数 2.2 关闭文件函数 2.3 写入文件函数 2.4 读取文件函数 2.5 读取一行函数 2.6 获取文件大小函数 2.7 …...
linux文本三剑客 --- grep、sed、awk
1、grep grep:使用正则表达式搜索文本,将匹配的行打印出来(匹配到的标红) 命令格式:grep [option] pattern file <1> 命令参数 -A<显示行数>:除了显示符合范本样式的那一列之外,并…...
leetcode 107.二叉树的层序遍历II
题目 思路 正常层序遍历输出: [[3],[9,20],[15,7]] 这道题要求的输出:[[15,7],[9,20],[3]] 可以观察到,只要我们把原来的结果reverse一下就行了。 代码 //leetcode submit region begin(Prohibit modification and deletion)import java…...
Java生成唯一ID的方式有哪些?
在Java中生成唯一ID的方法多种多样,以下是几种常用方法及其示例代码: 1. 使用UUID UUID是一种普遍采用的生成唯一ID的方法,Java通过java.util.UUID类提供了简单的方法来生成。 import java.util.UUID;public class UniqueIdExample {publi…...
代码随想录day44:动态规划over,回文子串及字序列
文章目录 day44:动态规划over,回文子串647.回文子串516.最长回文子序列 day44:动态规划over,回文子串 647.回文子串 class Solution {public int countSubstrings(String s) { // 布尔类型的dp[i][j]:表示区间范围[i…...
ElasticSearch启动报错:Exception in thread “main“ SettingsException
Exception in thread "main" SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found [VALUE_STRING]]; 这个报错说明elasticsearch.yml这个配…...
git配置密钥
要配置 Git 密钥,可以按照以下步骤进行操作: 1.生成密钥:首先,在终端或命令提示符中运行以下命令生成密钥对: ssh-keygen -t rsa -b 4096 -C "dengweng-pulse.net"这将生成一个 RSA 密钥对,其中…...
Pandas库常用方法、函数集合
Pandas是Python数据分析处理的核心第三方库,它使用二维数组形式,类似Excel表格,并封装了很多实用的函数方法,让你可以轻松地对数据集进行各种操作。 这里列举下Pandas中常用的函数和方法,方便大家查询使用。 读取 写…...
Qt实现TFTP Server和 TFTP Client(一)
1 概述 TFTP协议是基于UDP的简单文件传输协议,协议双方为Client和Server.Client和Server之间通过5种消息来传输文件,消息前两个字节Code是消息类型,消息内容随消息类型不同而不同。传输模式有三种:octet,netascii和mail,octet为二…...
MySQL数据库的日志管理以及备份和恢复
目录 1、日志管理 2、查询日志 3、数据备份的重要性 4、数据库备份的分类 4.1物理备份 4.2逻辑备份: 4.3完全备份 5、常见的备份方法 6、MySQL完全备份 6.1MySQL完全备份优缺点 6.2数据库完全备份分类 6.2.1物理冷备份与恢复 6.2.2mysqldump备份…...
戴森球计划FactoryBluePrints:解锁游戏工厂建造的终极免费蓝图库
戴森球计划FactoryBluePrints:解锁游戏工厂建造的终极免费蓝图库 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 还在为《戴森球计划》中复杂的工厂布局头疼吗&…...
DAMOYOLO-S快速上手:移动端浏览器访问Web服务与触屏操作适配说明
DAMOYOLO-S快速上手:移动端浏览器访问Web服务与触屏操作适配说明 1. 开篇:一个能“看懂”世界的AI助手 想象一下,你正用手机拍一张街景照片,屏幕上立刻就能标出“汽车”、“行人”、“交通灯”,甚至“手提包”。这不…...
如何通过自动化硬件适配技术突破Hackintosh配置瓶颈:OpCore Simplify技术深度解析
如何通过自动化硬件适配技术突破Hackintosh配置瓶颈:OpCore Simplify技术深度解析 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 在开源系…...
用快马平台快速原型你的技能学习器:AI一键生成交互式教程项目
最近在尝试做一个交互式Python技能学习生成器,发现用InsCode(快马)平台可以特别高效地完成原型验证。这个工具的核心思路是让用户输入想学习的技能,系统就能自动生成完整的学习项目,包含理论、示例和练习。下面分享下具体实现过程:…...
GLM-4.1V-9B-Base行业实践:农业病虫害田间照片识别与防治建议辅助
GLM-4.1V-9B-Base行业实践:农业病虫害田间照片识别与防治建议辅助 1. 农业场景下的视觉AI需求 在现代农业生产中,病虫害防治一直是困扰农户的核心问题。传统识别方法依赖农技人员现场勘查,效率低下且成本高昂。根据农业农村部数据ÿ…...
海康MVS软件从下载到实时预览:MV-CA013-21UC工业相机5分钟极速上手教程
海康MVS软件从下载到实时预览:MV-CA013-21UC工业相机5分钟极速上手教程 工业视觉系统正成为智能制造的核心组件,而海康威视MV-CA013-21UC工业相机凭借其高帧率、低噪声和稳定性能,在自动化检测、机器人引导等领域广受欢迎。本文将带您从零开…...
从CFG到PDG:5个真实案例解析程序依赖图在安全审计中的应用
从CFG到PDG:5个真实案例解析程序依赖图在安全审计中的应用 在软件安全领域,漏洞检测的精准度往往取决于代码分析的深度。传统控制流图(CFG)虽然能描绘执行路径,却难以捕捉数据流转的潜在风险。程序依赖图(P…...
Translategemma-27b-it与OCR结合:图片翻译完整流程
Translategemma-27b-it与OCR结合:图片翻译完整流程 1. 引言 想象一下这样的场景:你在异国旅行时看到一份精美的菜单,却因为语言障碍而不知道点什么;或者在研究国外产品时,标签上的说明文字完全看不懂。传统的翻译工具…...
5分钟成为效率大师!NoteGen快捷键可视化配置终极指南
5分钟成为效率大师!NoteGen快捷键可视化配置终极指南 【免费下载链接】note-gen 一款专注于记录和写作的跨端 AI 笔记应用。 项目地址: https://gitcode.com/GitHub_Trending/no/note-gen NoteGen是一款专注于记录和写作的跨端AI笔记应用,通过快捷…...
Qwen3-Embedding-4B入门必看:Embedding模型vs LLM生成模型的核心差异
Qwen3-Embedding-4B入门必看:Embedding模型vs LLM生成模型的核心差异 1. 引言:从关键词搜索到语义理解 你是否曾经遇到过这样的困扰:在搜索引擎中输入"苹果",结果既出现了水果苹果的信息,又出现了苹果公司…...
