1 .项目中,难免遇到两个系统平台数据的交互,此时就需要通过接口来完成了;
2.WebService 基于 HTTP 通信,它跨平台,使得易购平台能无缝衔接,将应用程序的逻辑和数据暴露,使得其他应用系统可重用这些数据;
使用xml对数据封装,使得内容和结构分离,很强的可操作性,作为纯文本可方便的穿过防火墙,它规范统一、支持多种编码、易于扩展;
组装报文:传递字符串数组
public void createXml() { try { String[] input = { "damon,907931506", "chris,776295345" }; String[] line = new String[2]; DocumentBuilderFactory dFact = DocumentBuilderFactory.newInstance(); DocumentBuilder build = dFact.newDocumentBuilder(); Document doc = build.newDocument(); doc.setXmlStandalone(true); Element root = doc.createElement("root"); doc.appendChild(root); Element memberList = doc.createElement("members"); root.appendChild(memberList); for (int i = 0; i < input.length; i++) { line = input[i].split(","); Element member = doc.createElement("member"); memberList.appendChild(member); Element name = doc.createElement("name"); name.appendChild(doc.createTextNode(line[0])); member.appendChild(name); Element phone = doc.createElement("qq"); phone.appendChild(doc.createTextNode(line[1])); member.appendChild(phone); } TransformerFactory tFact = TransformerFactory.newInstance(); Transformer trans = tFact.newTransformer(); StringWriter writer = new StringWriter(); StreamResult result = new StreamResult(writer); DOMSource source = new DOMSource(doc); trans.transform(source, result); System.out.println(writer.toString()); } catch (TransformerException ex) { System.out.println("Error outputting document"); } catch (ParserConfigurationException ex) { System.out.println("Error building document"); } }
调试输出结果为:
<?xml version="1.0" encoding="UTF-8"?> <root> <members> <member> <name>damon</name> <qq>907931506</qq> </member> <member> <name>chris</name> <qq>776295345</qq> </member> </members> </root>
客户端对报文进行解析:(对普通格式的xml进行解析,字符串数组类似)
public Map readXml(String xml) { Map map = new HashMap(); try { Document doc = (Document) DocumentHelper.parseText(xml); Element element = doc.getRootElement(); Iterator Elements = element.elementIterator(); while (Elements.hasNext()) { Element user = (Element) Elements.next(); if (user.getName().equals("returnCode")) { map.put(user.getName(), user.getStringValue()); } Iterator iters = user.elementIterator("param"); while (iters.hasNext()) { Element itemEle = (Element) iters.next(); String paramKey = itemEle.elementTextTrim("paramKey"); String paramValue = itemEle.elementTextTrim("paramValue"); map.put(paramKey, paramValue); } } } catch (Exception e) { e.printStackTrace(); } return map; }
相关推荐
该代码实现字符串报文解析功能,并保存在指定容器,非常好用
本人写的电力行业报文解析工具,单文件免安装,随存随用,详细解析到每个字节。支持如下规约: 1.698.45报文解析;2.南网规约报文解析;3.376.2报文解析(茜茜写的);4.376.1规约帧结构解析;5.645.07表规约帧结构解析...
附件内容为:Java组装map数据,然后转换为json数据格式;Java解析json数据
\104 104工具\报文分析软件\C浮点数与字符转换wlzl \\为浮点数和16进制数转换工具 \104 104工具\报文分析软件\IEC8705(报文翻译工具) \\为101 104报文解析工具 \104 104工具\报文分析软件\报文解析器 \\为101 104...
一份电池管理系统的报文解析文件,通过该文件可以将采集的数据解析出来
此程序将RS232串口通讯报文转化为可视化的高低电平图像,支持不同的奇偶校验、停止位设置
监视串口发送报文解析工具,很好用
最详细西门子S7报文协议解析
104协议分析的防守打法 协议分析104协议分析104协议分析104协议分析
GBT 27930-2015-2011_CAN报文自动解析工具脚本: 新能源行业直流快充充电标准,CAN报文自动解析工具脚本,只需将CAN报文粘贴至相应位置,即可实现自动解析CAN报文信息。 如果需要了解详情和细节,可私信小编。
本文论述CAN报文定义、接收CAN报文的方法以及CAN报文的组成与帧结构;通过实解析电动汽车整车控制与电池管理系统之间CAN通信报文的含义,并分析如何应用CAN报文的解析来诊断有关电动汽车的故障。
国网376.1报文解析工具,基本的报文都能正确解析
可以将接口返回的Json字符串在工具中进行解析,方便快捷的看到实体类。
主要分析102报文,对102报文进行解析。
POS通讯报文解析工具,支持标准及非标准8583报文解析,可配置第三方支付平台8583报文协议解析。
用C语言实现 分隔符报文的解析,例如|1|2|3| 1|2|3 |1|2|3 1|2|3| 这几种模式都可以成功解析出各个域
一般银行返回的字符串为xml报文,需先转换为xml文档方便解析。
支持规约: 1.698.45报文解析;2.南网规约报文解析;3.1376.2报文解析;4.1376.1规约帧结构解析;5.645-2007表规约帧结构解析;6.101规约报文解析;7.104规约报文解析。附加功能:a.698.45模拟主站功能;b.698.45规约...
新能源汽车国家标准GB32960报文分析工具能够将符合GB32960协议的报文日志通过EXCEL表格导出,用于分析车辆行驶过程中的数据变化过程。 TBOX 上传到服务器的数据, 在串口都有一个同步输出,串口输出的数据可读性差,...
GPS信号模拟器源代码,串口读取GPS报文,解析,显示GPS信号点,很有用的