Java 如何传参xml调用接口获取数据

embedded/2025/1/13 19:38:10/
xmlns="http://www.w3.org/2000/svg" style="display: none;">

传参和返参的效果图如下:

传参:

在这里插入图片描述

返参:

在这里插入图片描述

代码实现:

1、最外层类
java">/*** 外层DATA类*/
@XmlRootElement(name = "DATA")
public class PointsXmlData {private int rltFlag;private int failType;private String failMemo;private PointsDetailLists detailLists;//数据集合@XmlElement(name = "RLT_FLAG")public int getRltFlag() { return rltFlag; }public void setRltFlag(int rltFlag) { this.rltFlag = rltFlag; }@XmlElement(name = "FAIL_TYPE")public int getFailType() { return failType; }public void setFailType(int failType) { this.failType = failType; }@XmlElement(name = "FAIL_MEMO")public String getFailMemo() { return failMemo; }public void setFailMemo(String failMemo) { this.failMemo = failMemo; }@XmlElement(name = "DETAIL_LISTS")public PointsDetailLists getDetailLists() { return detailLists; }public void setDetailLists(PointsDetailLists detailLists) { this.detailLists = detailLists; }
}
2、中间层类
java">/*** 中间层DETAIL_LISTS类*/
@XmlAccessorType(XmlAccessType.FIELD)
public class PointsDetailLists {@XmlElement(name = "DETAIL_LIST")private List<PointsList> detailList;//每一个数据类public List<PointsList> getDetailList() { return detailList; }public void setDetailList(List<PointsList> detailList) { this.detailList = detailList; }
}
3、详细数据类
java">/*** 详细数据类*/
@XmlAccessorType(XmlAccessType.FIELD)
public class PointsList {/*** 用户ID*/@XmlElement(name = "USER_ID")private String userId;/*** 数量*/@XmlElement(name = "NUM")private int num;public String getUserId() { return userId;}public void setUserId(String userId) {this.userId = userId;}public int getNum() { return num;}public void setNum(int num) {this.num = num;}
}
4、通过传参XML的方式调用第三方系统获取数据
java">private CornerNumVO queryPointsBadge(String userId) {CornerNumVO numVO = new CornerNumVO();try {URL url = new URL("http://127.0.0.1........");//TODO: 替换为要调用的接口地址HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("POST");connection.setRequestProperty("Content-Type", "application/xml; utf-8");connection.setDoOutput(true);//组装xmlString xmlData = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +"<DATA>" +"<DETAIL_LISTS>" +"<DETAIL_LIST>" +"<USER_ID>"+ userId +"</USER_ID>" +"</DETAIL_LIST>" +"</DETAIL_LISTS>" +"</DATA>";//写入请求中byte[] input = xmlData.getBytes("utf-8");OutputStream os = connection.getOutputStream();os.write(input, 0, input.length);os.flush();// 获取响应int responseCode = connection.getResponseCode();// 成功响应,得到数据if (responseCode == HttpURLConnection.HTTP_OK) {BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String inputLine;StringBuilder dataStr = new StringBuilder();//判断每一行while ((inputLine = in.readLine()) != null) {dataStr.append(inputLine);}in.close();//解析返回的字符串并组装数据JAXBContext context = JAXBContext.newInstance(PointsXmlData.class);Unmarshaller unmarshaller = context.createUnmarshaller();//转换数据StringReader reader = new StringReader(dataStr.toString());PointsXmlData data = (PointsXmlData) unmarshaller.unmarshal(reader);//组装返回考核方案下的数据为实体类for (PointsList detail : data.getDetailLists().getDetailList()) {//TODO: 自己的逻辑处理......System.out.println("USER_ID: " + detail.getUserId() + ", NUM: " + detail.getNum());}} else {//TODO: 自己的逻辑处理......return new CornerNumVO();}} catch (Exception e) {e.printStackTrace();}return numVO;}

http://www.ppmy.cn/embedded/153640.html

相关文章

Termora 一个开源的 SSH 跨平台客户端工具

Termora 是一个终端模拟器和 SSH 客户端&#xff0c;支持 Windows&#xff0c;macOS 和 Linux。 功能特性 支持 SSH 和本地终端支持 SFTP 文件传输支持 Windows、macOS、Linux 平台支持 Zmodem 协议支持 SSH 端口转发支持配置同步到 Gist支持宏&#xff08;录制脚本并回放&…

基于C#Halcon3D点云图视图查看实现封装心得

实现效果 实现该Demo的个人步序 1&#xff0c;用什么框架去实现&#xff08;&#xff09; 经过测试及其他大佬封装案例最终选定C# .NET Window窗体&#xff08;无他 &#xff0c;简单&#xff09; 2&#xff0c;添加依赖的开发包 3&#xff0c;快速构建UI布局 4&#xff0c;…

MySQL Binlog 同步工具go-mysql-transfer Lua模块使用说明

一、go-mysql-transfer go-mysql-transfer是一款MySQL实时、增量数据同步工具。能够实时解析MySQL二进制日志binlog&#xff0c;并生成指定格式的消息&#xff0c;同步到接收端。 go-mysql-transfer具有如下特点&#xff1a; 1、不依赖其它组件&#xff0c;一键部署 2、集成多种…

【蓝牙】win11 笔记本电脑连接 hc-06

文章目录 前言步骤 前言 使用电脑通过蓝牙添加串口 步骤 设置 -> 蓝牙和其他设备 点击 显示更多设备 更多蓝牙设置 COM 端口 -> 添加 有可能出现卡顿&#xff0c;等待一会 传出 -> 浏览 点击添加 hc-06&#xff0c;如果没有则点击 再次搜索 确定 添加成…

nginx反向代理和负载均衡的区别

1、反向代理&#xff0c;不需要服务器池&#xff0c;直接代理某台服务器 location / {proxy_pass http://192.168.18.201;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr; }proxy_set_header Host $host; …

30天开发操作系统 第 12 天 -- 定时器 v1.0

前言 定时器(Timer)对于操作系统非常重要。它在原理上却很简单&#xff0c;只是每隔一段时间(比如0.01秒)就发送一个中断信号给CPU。幸亏有了定时器&#xff0c;CPU才不用辛苦地去计量时间。……如果没有定时器会怎么样呢?让我们想象一下吧。 假如CPU看不到定时器而仍想计量时…

【Excel笔记_3】execl的单元格是#DIV/0!,判断如果是这个,则该单元格等于空

在 Excel 中&#xff0c;可以使用 IF 函数来判断单元格是否是 #DIV/0! 错误&#xff0c;并将其替换为空值&#xff08;即空字符串 ""&#xff09;。具体公式如下&#xff1a; IF(ISERROR(A1), "", A1)或者&#xff0c;如果只想判断 #DIV/0! 错误&#xff…

10步打造完美ASP.NET、Web API和控制台应用程序文件夹结构

一、前言 在大型项目中&#xff0c;合理的文件夹结构是项目成功的关键之一。一个好的文件夹结构就像是一座井然有序的图书馆&#xff0c;每一本书&#xff08;代码文件&#xff09;都有其固定的位置&#xff0c;让人能迅速找到所需。它可以让团队成员更容易理解和维护代码&…