zoukankan      html  css  js  c++  java
  • java URL实现调用其他系统发送报文并获取返回数据

        模拟本系统通过Url方式发送报文到目标服务器,并获取返回数据:(实现类)

     1 import java.io.BufferedOutputStream;
     2 import java.io.BufferedReader;
     3 import java.io.InputStream;
     4 import java.io.InputStreamReader;
     5 import java.io.OutputStream;
     6 import java.io.OutputStreamWriter;
     7 import java.net.URL;
     8 import java.net.URLConnection;
     9 
    10 public class BlazeSao {
    11 
    12     public static void callBlaze(String url ,String data) throws Exception{
    13         URL u = new URL(url);
    14         System.out.println("建立链接....");
    15         //获取连接对象
    16         URLConnection uc = u.openConnection();
    17         uc.setDoOutput(true);
    18         //获取输出流对象
    19         OutputStream raw = uc.getOutputStream();
    20         OutputStream buffered = new BufferedOutputStream(raw);
    21         OutputStreamWriter out = new OutputStreamWriter(buffered, "UTF-8");
    22 
    23         System.out.println("发送报文:"+data);
    24         out.write(data);
    25 
    26         out.flush();
    27         System.out.println("关闭连接");
    28         out.close();
    29         //获取到返回数据的输入流
    30         InputStream is = uc.getInputStream();
    31         BufferedReader br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
    32         String line = "";
    33         StringBuffer blzRspXml = new StringBuffer();
    34         System.out.println("获取返回数据:");
    35         while((line = br.readLine()) != null){
    36             //读取返回数据,分行读取
    37             System.out.println(line.trim());
    38             blzRspXml.append(line.trim());
    39         }
    40     }
    41 
    42     public static void main(String args[]){
    43         
    44         //目标服务器地址
    45         String url1 = "http://10.14.30.242:9080/RES/Rule";
    46         //发送的报文
    47         String data1 = "<?xml version="1.0" encoding="UTF-8"?><CardRequest><SEQ_TIME_STAMP>2014325170152799504</SEQ_TIME_STAMP><TYPE>1</TYPE><v_101>-999998</v_101><v_102>0.002740</v_102><v_109>111.11</v_109></CardRequest>";
    48         try {
    49             BlazeSao.callBlaze(url1,data1);
    50         } catch (Exception e) {
    51             e.printStackTrace();
    52         }
    53     }
    54 
    55 }

    输出日志:

    建立链接....
    发送报文:<?xml version="1.0" encoding="UTF-8"?><CardRequest><SEQ_TIME_STAMP>2014325170152799504</SEQ_TIME_STAMP><TYPE>1</TYPE><v_101>-999998</v_101><v_102>0.002740</v_102><v_109>111.11</v_109><v_110>111.11</v_110</CardRequest>
    关闭连接
    获取返回数据:
    <ResponseData>
    <R_001>S5=-9999.0</R_001>
    <R_002>T</R_002>
    <R_003>Y</R_003>
    <R_004></R_004>
    <R_005></R_005>
    <R_006>S5_B017_others</R_006>
    </ResponseData>
  • 相关阅读:
    Java线程池之ThreadPoolExecutor
    React Native开发环境的搭建
    Android Lint——内嵌于Android Studio的代码优化工具
    Android异步处理技术
    NavigationView的头部的事件监听
    进程间通信之AIDL
    跨进程通信之Messenger
    Android 进程增加存活率
    android MVP模式思考
    Vim学习
  • 原文地址:https://www.cnblogs.com/xiayahui/p/5569410.html
Copyright © 2011-2022 走看看