当前位置: 首页 > news >正文

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

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

传参:

在这里插入图片描述

返参:

在这里插入图片描述

代码实现:

1、最外层类
/*** 外层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、中间层类
/*** 中间层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、详细数据类
/*** 详细数据类*/
@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的方式调用第三方系统获取数据
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.lryc.cn/news/520218.html

相关文章:

  • uniapp 之 uni-forms校验提示【提交的字段[‘xxx‘]在数据库中并不存在】解决方案
  • excel VBA 基础教程
  • 基于异步IO的io_uring
  • 【江协STM32】10-2/3 MPU6050简介、软件I2C读写MPU6050
  • 仓颉笔记——写一个简易的web服务并用浏览器打开
  • DolphinScheduler自身容错导致的服务器持续崩溃重大问题的排查与解决
  • ecmascript 标准+ 严格模式与常规模式 + flat-flatMap 应用
  • 基于ILI9341液晶屏+STM32U5单片的显示试验
  • 最短路径算法
  • 如何用 ESP32-CAM 做一个实时视频流服务器
  • Centos7 解决Maven scope=system依赖jar包没有打包到启动jar包中的问题(OpenCV-4.10)
  • iOS实际开发中使用Alamofire实现多文件上传(以个人相册为例)
  • 如何将分割的mask转为为分割标签
  • 【动手学电机驱动】STM32-MBD(5)Simulink 模型开发之 PWM 输出
  • MySQL进阶突击系列(05)突击MVCC核心原理 | 左右护法ReadView视图和undoLog版本链强强联合
  • vue2日历组件
  • 【PyQt】多行纯文本框
  • workerman5.0篇〡异步非阻塞协程HTTP客户端
  • JavaScript 延迟加载的方法( 7种 )
  • python+pymysql
  • 基于 Selenium 实现上海大学校园网自动登录
  • 啥!GitHub Copilot也免费使用了
  • Spring配置文件中:密码明文改为密文处理方式(通用方法)
  • Linux下ext2文件系统
  • BUUCTF:web刷题记录(1)
  • 【微服务】面试题 6、分布式事务
  • 【2024年华为OD机试】(C卷,100分)- 分割均衡字符串 (Java JS PythonC/C++)
  • Spring Data Elasticsearch简介
  • GESP202312 四级【小杨的字典】题解(AC)
  • 键盘过滤驱动