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();}}

有不足之处还请指教!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/764477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gitlab的流水线任务【实现每小时自动测试 dev分支的更新】

背景 在现代软件开发实践中&#xff0c;持续集成&#xff08;Continuous Integration, CI&#xff09;是确保代码质量和快速响应软件缺陷的关键策略。GitLab 提供了强大的 CI/CD 功能&#xff0c;允许开发者自动化测试和部署流程。本文将介绍如何设置 GitLab 流水线计划任务&a…

Java22重磅发布!!!!卷不动了,真的卷不动了。。。。

就在3月19日&#xff0c;Java22重磅发布。Java22新增了12项增强功能&#xff0c;其中包括七个预览特性和一个孵化器特性&#xff0c;这些功能都显著到足以引起JDK增强提案&#xff08;JEPs&#xff09;的关注。它们涵盖了Java语言、其API、性能以及JDK中包含的工具的改进。 真…

C语言的运算符优先级(详细)

C语言的运算符优先级如下&#xff08;由高到低&#xff09;&#xff1a; 括号&#xff1a;()&#xff0c;用于改变表达式的结合性和优先级。 单目运算符&#xff1a;&#xff0c;--&#xff0c;&#xff0c;-&#xff0c;!&#xff0c;~&#xff0c;sizeof&#xff0c;&&a…

【网络基础】VRRP虚拟路由冗余协议介绍与配置

目录 一、VRRP的概述 1.1 VRRP的由来 1.2 作用 1.3 基本结构 1.4 状态机流程 1.5 设备类型 二、 实例演示 一、VRRP的概述 1.1 VRRP的由来 局域网中的用户终端通常采用配置一个默认网关的形式访问外部网络&#xff0c;如果此时默认网关设备发生故障&#xff0c;将中断…

设计模式 --4:工厂方法模式

总结 &#xff1a; 个人理解&#xff1a; 工厂方法模式就是在简单工程模式的基础下将工厂类抽象出来。如果不抽象工厂类 &#xff0c;每一次创建一个新的算法&#xff0c;都要修改原来的工厂类&#xff0c;这不符合 开放–封闭原则 将工厂类给抽象出来&#xff0c;让具体的算法…

20240319金融读报:金融助力农业科创企业风控模型

1、农发行2023年第二十期金融债券票面利率为2.85% 2、农业生产现代化转型-》农机&#xff1a;新疆尉犁县超级棉田里&#xff0c;农业无人机、采棉打包机、棉田打顶机器人等现代化机械设施&#xff0c;让两个人收种3000亩棉田成为了可能&#xff08;金融机构可以结合农机购置补贴…

使用zabbix自动发现规则监控oracle分区表的分区键的合法

一、 创建从数据库查询原始数据脚本 编写脚本query_table.sh vim query_table.sh #!/bin/bash temp_outfile"/tmp/table.source" outfile"/tmp/table.txt" source /home/oracle/.bash_profilesqlplus -s zabbix/zabbix>${temp_outfile}<<EOF c…

贪心算法入门

简介 贪心算法&#xff08;Greedy Algorithm&#xff09;是一种在每一步选择中都采取在当前状态下最好或最优&#xff08;即最有利&#xff09;的选择&#xff0c;从而希望导致结果是全局最好或最优的算法。也就是首先选取局部最优&#xff0c;从局部最优推出全局最优。 举例…

【python开发】安装配置启动+数据库管理+表管理+数据行管理+python操作Mysql及相关安全的问题

Mysql入门 一、安装&启动1、安装2、测试3、设置和修改root密码 二、数据库管理1、内置客户端操作&#xff08;1&#xff09;查看当前所有的数据库(show databases);&#xff08;2&#xff09;创建数据库&#xff1a;create database learn&#xff08;数据库名&#xff09;…

北京中科富海低温科技有限公司确认出席2024第三届中国氢能国际峰会

会议背景 随着全球对清洁能源的迫切需求&#xff0c;氢能能源转型、工业应用、交通运输等方面具有广阔前景&#xff0c;氢能也成为应对气候变化的重要解决方案。根据德勤的报告显示&#xff0c;到2050年&#xff0c;绿色氢能将有1.4万亿美元市场。氢能产业的各环节的关键技术突…

复试专业前沿问题问答合集12——网络空间安全基础知识

复试专业前沿问题问答合集12——网络空间安全基础知识 Web安全与网络攻防知识问答 Q1: 什么是Web应用防火墙(WAF)? A1: Web应用防火墙(WAF)是一种专门为Web应用程序提供保护的防火墙,它可以帮助保护Web应用免受跨站脚本(XSS)、SQL注入、文件包含等多种攻击。WAF通过…

四川宏博蓬达法律咨询有限公司:法律服务安全的新标杆

在这个法治社会&#xff0c;法律服务行业扮演着越来越重要的角色。四川宏博蓬达法律咨询有限公司&#xff0c;作为行业内的佼佼者&#xff0c;始终坚持以客户为中心&#xff0c;为客户提供专业、高效、安全的法律服务。 一、公司背景与实力展示 四川宏博蓬达法律咨询有限公司自…

【爬虫】Selenium打开新tab页

如果说 你曾苦过我的甜 我愿活成你的愿 愿不枉啊 愿勇往啊 这盛世每一天 山河无恙 烟火寻常 可是你如愿的眺望 孩子们啊 安睡梦乡 像你深爱的那样 &#x1f3b5; 王菲《如愿》 在自动化测试和网页抓取中&#xff0c;Selenium WebDriver 是一个强大的工具&…

3.0 V-22V 宽输入电压,高效率异步升压芯片-ZCC5429

一、产品综述 ZCC5429 芯片是一款自动调频、最高 600KHz工作频率、高效率、宽输入电压范围的电流模式异 步升压&#xff08;BOOST&#xff09;芯片&#xff0c;且可调输入限流功能。用户可灵活地通过外部补偿建立动态环路&#xff0c;获得在所有条件下最优瞬态性能。 ZCC542…

WebGoat通关详解

WebGoat是一个用于教授Web应用程序安全性的教育平台。它提供了一系列有关Web安全的练习&#xff0c;帮助用户了解常见的Web安全漏洞及其防御方法。通过完成这些练习&#xff0c;用户可以增强自己在Web安全领域的知识和技能。下面将详细介绍WebGoat的通关过程。 一、WebGoat简介…

C语言例3-26:逗号表达式的例子

逗号表达式&#xff1a; 表达式1&#xff0c;表达式2 表达式可以是算术表达式、关系表达式、逻辑表达式、条件表达式、赋值表达式和逗号表达式。 代码如下&#xff1a; #include<stdio.h> int main(void) {int i1,j;float f2.0f;char chb; //b(98)// printf(&…

模型设计和跑数优化1:开发数据仓库耗时复杂报表的策略

在使用Spark和Doris进行数据仓库开发时,报表生成的效率对于业务分析和决策支持至关重要。当报表复杂且数据量大时,任何改动都可能导致需要重新从零开始处理数据,这不仅耗时而且资源消耗巨大。更为严重的时,可以导致项目延期,影响了绩效,甚至因此失业。为了优化这一过程,…

Android 封装的工具类

文章目录 日志封装类-MyLog线程封装类-LocalThreadPools自定义进度条-LoadProgressbar解压缩类-ZipUtils本地数据库类-MySQLiteHelper访问webservice封装-HttpUtilsToolbar封装类-MaterialToolbar网络请求框架-OkGo网络请求框架-OkHttp 日志封装类-MyLog 是对android log的封装…

罗格朗逸景PLUS IOT智能系统发布,为您提供更智能的生活体验!

罗格朗全新推出的逸景PLUS IOT智能系统现已正式上市,采用纤薄纯平的设计,功能丰富全面,支持灯光/温度/场景控制、背景音乐等多种功能,整合罗格朗IOT2.0系统,集成可视对讲,为用户打造更舒适、安全的智能生活。 罗格朗智能家居 罗格朗是全球电气与智能建筑系统专家,创立于1865年…

【3D reconstruction 学习笔记 第二部】

三维重建 3D reconstruction 4. 三维重建与极几何三角化&#xff08;线性解法&#xff09;三角化&#xff08;非线性解法&#xff09;多视图几何极几何极几何约束基础矩阵估计 5. 双目立体视觉重建6. 多视图重建7. SFM 系统设计8. SLAM系统设计 4. 三维重建与极几何 三角化&…