• 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>
  • 相关阅读:
    springboot配置文件priperties大全
    JWT全面解读、使用步骤
    springboot+jwt做api的token认证
    SpringSecurity-UsernamePasswordAuthenticationFilter的作用
    java中字符串太长,怎么自动换到下一行
    idea中mybatis generator自动生成代码配置 数据库是sqlserver
    Spring REST实践之HATEOAS
    在eclipse中查看sources源码和JavaDoc帮助文档
    在Eclipse中查看Javadoc文档
    【layui】laydate的年度类型设值,不能使用done方法时,翻页不设值
  • 原文地址:https://www.cnblogs.com/xiayahui/p/5569410.html
Copyright © 2020-2023  润新知