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

devtools/2025/1/14 0:05:05/
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/devtools/150272.html

相关文章

PyCharm 的安装与使用(Window)

1 PyCharm 简介 PyCharm 是一款由 JetBrains 公司开发的专门用于 Python 语言开发的集成开发环境&#xff08;IDE&#xff09;。以下是其相关介绍&#xff1a; 1.1 特点与功能 智能代码编辑&#xff1a;提供高度智能化的代码编辑器&#xff0c;支持语法高亮、自动补全、代码重…

多跳问答中的语言模型知识编辑增强

人工智能咨询培训老师叶梓 转载标明出处 大模型在整合实时知识更新方面常常遇到困难&#xff0c;这可能导致回答过时或不准确。尤其当处理多跳问题时&#xff0c;挑战进一步增加&#xff0c;因为这类问题需要模型更新和整合与问题相关的多个知识点。图 1为传统基于相似度的搜索…

GoLand 如何集成 Netty?

目录 1.回答问题&#xff1a; 2.以下是实现类似 Netty 功能的步骤&#xff1a; 2.1 实现基本的网络通信功能&#xff1a; 3. 使用 Go 的第三方库实现 Netty 功能 4.实现类似 Netty 的事件循环&#xff1a; 5. 运用场景&#xff1a; 1.回答问题&#xff1a; 要在 GoLand 中…

【HTML+CSS+JS+VUE】web前端教程-21-字体属性

字体属性 css字体属性定义字体,颜色、大小、加粗、文字样式 color 规定文本的颜色 color: red;color: #ff0000;color: rgb(255,0,0);color: rgba(255,0,0,.5);font-size 设置文本的大小 能否管理文字的大小,在网页设计中是非常重要的,但是,你不能通过调整字体大小使段落看…

Nacos 3.0 Alpha 发布,在安全、泛用、云原生更进一步

自 2021 年发布以来&#xff0c;Nacos 2.0 在社区的支持下已走过近三年&#xff0c;期间取得了诸多成就。在高性能与易扩展性方面&#xff0c;Nacos 2.0 取得了显著进展&#xff0c;同时在易用性和安全性上也不断提升。想了解更多详细信息&#xff0c;欢迎阅读我们之前发布的回…

Solidity基础入门

Solidity 简介 Solidity 是一种用于编写以太坊虚拟机&#xff08;EVM&#xff09;智能合约的编程语言。我认为掌握 Solidity 是参与链上项目的必备技能&#xff1a;区块链项目大部分是开源的&#xff0c;如果你能读懂代码&#xff0c;就可以规避很多亏钱项目。 Solidity 具有两…

计算机网络之---MAC协议

MAC协议的作用 在数据链路层中&#xff0c;MAC&#xff08;媒介访问控制&#xff09;协议负责控制设备如何访问共享的通信介质&#xff08;如以太网、无线电波等&#xff09;&#xff0c;确保在多台设备共享同一传输媒介时能够有效地进行数据传输&#xff0c;避免冲突、控制流…

Python 正则表达式完全指南

# Python 正则表达式完全指南 正则表达式&#xff08;Regular Expression&#xff09;是Python中进行文本处理的强大工具。本指南将详细介绍Python中正则表达式的使用方法和实践技巧。 ## 1. 基础知识 ### 1.1 导入正则表达式模块 python import re ### 1.2 创建正则表达式 在…