银行接口Socket传输XML
因为项目需要,行方不提供http接口,只提供socket接口,并且用XML格式传输(并且没有联调,所以本地创建server端和client端进行本地调试)。
请求报文:
<?xml version="1.0" encoding="UTF-8"?>
<packet>
<SYS_ID>ZFB2C</SYS_ID>
<TRANS_CODE>TOKEN</ TRANS_CODE>
</packet>
响应报文:
<?xml version="1.0" encoding="UTF-8"?>
<packet>
<SYS_ID>ZFB2C</SYS_ID>
<TRANS_CODE>TOKEN</ TRANS_CODE>
< ACCESS_TOKEN >skdlajtfoiewjflkdsajflkdsajlkfdsajfljdsalkf</ ACCESS_TOKEN >
<RET_CODE>0000</ RET_CODE>
<RET_RMK>token值</RET_RMK>
</packet>
server端:
package com.demo.socket7;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
/**
* Socket通信XML
* @author earthxuan
*
*/
public class SocketServerTest {
public static void main(String[] args) throws IOException, ParserConfigurationException, TransformerException {
System.out.println("server.......");
ServerSocket serverSocket=null;
Socket sk=null;
serverSocket=new ServerSocket(9999);
while (true){
//阻塞获取请求
sk=serverSocket.accept();
InputStream inputStream=sk.getInputStream();
//读客户端传来的数据
DataInputStream in = new DataInputStream(inputStream);
String data = in.readUTF();
// System.out.println("接收到的数据:" + data);
//对客户端信息的校验,或者做其他的过滤
if(data.length()<5){
//数据长度小于5,则不需要解析客户端的数据,直接回传报文,RET_CODE为1111
OutputStream outputStream=sk.getOutputStream();
DataOutputStream dataOutputStream=new DataOutputStream(outputStream);
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder documentBu