短连接发送报文及xml字符串拼接

拼接报文

 StringBuffer sb = new StringBuffer();

sb.append("<ROOT>");
sb.append("<TRAN_CODE>100419</TRAN_CODE>");
sb.append("<INST_PRIVATE_FLAG>01</INST_PRIVATE_FLAG>");
sb.append("<TRANS_TYPE>100419</TRANS_TYPE>");
sb.append("<SourceClient>06</SourceClient>");
sb.append("<TransType>0419</TransType>");
sb.append("<tradeType>0417</tradeType>");
sb.append("<SOURCE>10025</SOURCE>");
sb.append("<INST_CODE>J001</INST_CODE>");

sb.append("<USER_ID>MM</USER_ID>");




sock短连接发送
public static String querycheck(String info) {
StringBuffer bf = new StringBuffer();
// String ip = SystemConfigurator.getParam("172.16.6.11");
String ip ="172.16.6.11";
String port = "3456";
// 1.建立客户端socket连接,指定服务器位置及端口
Socket socket = null;
// 2.得到socket读写流
OutputStream os = null;
PrintWriter pw = null;
// 输入流
InputStream is = null;
BufferedReader br = null;

try {

// 1.建立客户端socket连接,指定服务器位置及端口
socket = new Socket(ip, new Integer(port));
// 2.得到socket读写流
os = socket.getOutputStream();
pw = new PrintWriter(new OutputStreamWriter(os), true);


// 输入流
is = socket.getInputStream();
br = new BufferedReader(new InputStreamReader(is));
// 3.利用流按照一定的操作,对socket进行读写操作




int len = info.getBytes().length;
String len1 = String.valueOf(len);
if (len1.length() == 1) {
len1 = "00000" + len1;
} else if (len1.length() == 2) {
len1 = "0000" + len1;
} else if (len1.length() == 3) {
len1 = "000" + len1;
} else if (len1.length() == 4) {
len1 = "00" + len1;
}else if (len1.length() == 5) {
len1 = "0" + len1;
}
pw.write(len1 + info);

pw.flush();
// 接收服务器的相应
String  str= "";
String reply = null;
boolean flag = true;
while ((str = br.readLine()) != null) {

System.out.println(str);
bf.append(str.trim());

}
} catch (IOException e) {

e.printStackTrace();
} finally {
try {
//  4.关闭资源
if (br != null) {
br.close();
}
if (is != null) {
is.close();
}
if (pw != null) {
pw.close();
}
if (os != null) {
os.close();
}
if (socket != null) {
socket.close();
}
} catch (IOException ioException) {
}
}
return bf.toString();
}




对返回的报文进行处理

private static final String str ="000322<ROOT><Return><tradeType>0417</tradeType><SOURCE>10025</SOURCE><INST_CODE>J001</INST_CODE><USER_ID></USER_ID><tradeDate></tradeDate><TRACENO>00003221</TRACENO><resultDesc>信息一致</resultDesc><resv></resv><conSec></conSec><resultCode>00</resultCode></Return></ROOT>";
public static void main(String[] args) {
String resultDesc = str.substring(str.indexOf("<resultDesc>")
+ "<resultDesc>".length(), str.indexOf("</resultDesc>"));
String resultCode = str.substring(str.indexOf("<resultCode>")
+ "<resultCode>".length(), str.indexOf("</resultCode>"));
System.out.println("结果码:" + resultCode);
System.out.println("结果信息:" + resultDesc);











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值