HTTP+XML方式接口数据传输

原创 2010年11月24日 11:04:00

一.客户端

1.请求URL;如http://10.46.34.233/fcgi-bin/UIG_SFC_186

2.发送请求数据

{

   组装报文格式发送信息

   StringBuffer sendStr = new StringBuffer(1024);
   sendStr.append("<?xml version=/"1.0/" encoding=/"GBK/"?>");
   sendStr.append("<operation_in type=/"struct/">");
   sendStr.append("<service_name type=/"string/">RDMP_ToDoTaskQuery</service_name>");
   sendStr.append("<sysfunc_id type=/"int/">61590334</sysfunc_id>");
   sendStr.append("<request_type type=/"int/">1002</request_type>");
   sendStr.append("<verify_code type=/"string/">789730661774598915448481</verify_code>");
   sendStr.append("<operator_id type=/"string/">"+operator_id+"</operator_id>");
   sendStr.append("<organ_id type=/"int/">0000000</organ_id>");
   sendStr.append("<request_time type=/"datetime/">"+System.currentTimeMillis()/1000+"</request_time>");
   sendStr.append("<request_seq type=/"long/"></request_seq>");
   sendStr.append("<request_source type=/"int/">304061</request_source>");
   sendStr.append("<request_target type=/"int/">201024</request_target>");
   sendStr.append("<msg_version type=/"string/">0100</msg_version>");
   sendStr.append("<cont_version type=/"string/">0100</cont_version>");
   sendStr.append("<content type=/"string/">");
   sendStr.append("<![CDATA[");
   sendStr.append("<?xml version=/"1.0/" encoding=/"GBK/"?>");
   sendStr.append("<request type=/"struct/">");
   sendStr.append("<operator_id>"+operator_id+"</operator_id>");
   sendStr.append("</request>");
   sendStr.append("]]>");
   sendStr.append("</content>");
   sendStr.append("</operation_in>");
  

 

   发送报文格式发送信息

   URL url = null;
   HttpURLConnection conn = null;
   try{

    //HTTP的请求URL

    url = new URL(http://10.46.34.233/fcgi-bin/UIG_SFC_186);
    conn = (HttpURLConnection)url.openConnection();
    conn.setRequestProperty("Pragma:", "no-cache");
    conn.setRequestProperty("Content-Type", "text/xml;charset=GBK");
    //HTTP的POST方式进行数据传输
    conn.setDoInput(true);
    conn.setDoOutput(true);
    conn.setRequestMethod("POST");
    OutputStream dataOut = conn.getOutputStream();
    StringBuffer sendStr = new StringBuffer(1024);
    dataOut.write(content.getBytes());
    dataOut.write(sendStr.toString().getBytes());
    dataOut.flush();
    dataOut.close();
    //获取响应内容
   try{
     conn.connect();

     BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
     //注意BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"GBK")); 这么写,是因为有时候网络传输过程中字符会被修改,如GB-2312,因为出现乱码,就需要将此处加入GBK。
    //loger.info("获取默认字符编码:"+Charset.defaultCharset());
    String line = "";
    StringBuffer buffer = new StringBuffer(1024);
    while((line=in.readLine())!=null){
     buffer.append(line);
    }
    in.close();
    result = buffer.toString();
     //获取到的回馈信息:+result+结果集。
    }catch(IOException e){
     e.printStackTrace();
    }catch(Exception e){
     e.printStackTrace();
    }
   }catch(Exception e){
    e.printStackTrace();
   }

}

二.服务器端

1.提供访问URL;如http://10.11.26.101/ce_boa/Request_SERVET

2.获取监听到的内容

{

  BufferedReader inputStream = new BufferedReader(new InputStreamReader(request.getInputStream()));
  StringBuffer buffer = new StringBuffer(1024);
  String line = "";
  String isSuccessed;
  while((line=inputStream.readLine()) != null)
  {
   buffer.append(line);
  }
  String result = buffer.toString();
  loger.info("获取监听到的内容:"+result);
  WorkProcessContent workContent = new WorkProcessContent();
  //监听内容
  if(!result.equals(""))
  {

   //进行业务处理

   StringReader reads = new StringReader(result.toString());
     InputSource sources = new InputSource(reads);
     SAXBuilder sax = new SAXBuilder();
     try {
      Document doc = sax.build(sources);
      Element root =doc.getRootElement();
      String content = root.getChildText("content");//得到数据TEST
      StringReader readesh= new StringReader(content.toString());
         InputSource sourcere= new InputSource(readesh);
         SAXBuilder resb = new SAXBuilder();
         Document redoc = resb.build(sourcere);
         //得到根节点
         Element taskinfos = redoc.getRootElement();
         List listAttachInfo = taskinfos.getChildren();
         for (int i = 0; i < listAttachInfo.size(); i++)
        {

             Element taskinfo = (Element) listAttachInfo.get(i);
             String task_id = taskinfo.getChildText("task_id");
             .........

     }

   }

}

 

Http post 请求发送 xml

ChannelDistributor.xml 内容如下: yisou abcd1234 10010000 00 1).HttpClient发送Post请求,内容格式为xml,...
  • al_jin
  • al_jin
  • 2015年05月06日 17:21
  • 3396

java通过HTTP接收xml和返回xml

在CS客户端通过http发送xml文件,java后台接受,并返回xml文件
  • Super_Man_X
  • Super_Man_X
  • 2015年09月08日 13:09
  • 6553

对于java用发送http请求,请求内容为xml格式

package com.infowarelab.test;     import java.io.BufferedInputStream;  import java.io.Buffere...
  • zhejingyuan
  • zhejingyuan
  • 2013年06月26日 10:41
  • 25933

对《Netty权威指南》中的Http+xml协议栈开发的个人再整理

作为一个Netty的菜鸟,最近在学习李林峰先生的《Netty权威指南》,学习了Http+xml协议栈的开发,获益匪浅。本文代码大部分来自李林峰先生的《Netty权威指南》,有些代码经过读者修改。此处仅...
  • kingsonyoung
  • kingsonyoung
  • 2016年01月17日 15:03
  • 2094

接口测试小工具(HTTP + XML)

为测试接口简单写了个小工具,先留下个备份…… 接口测试 body {font-size:12px; font-family:Tahoma;} .ti...
  • lyjluandy
  • lyjluandy
  • 2013年12月24日 17:16
  • 10476

http接口测试工具-可发xml json格式报文

  • 2016年04月15日 15:10
  • 1.09MB
  • 下载

http请求,xml格式

  • 2014年09月25日 11:04
  • 856KB
  • 下载

HTTP + XML 报文的接口开发

好多朋友问我HTTP +XML报文接口怎样做,客户端怎样写,服务端怎样写。我想应该是这样的:服务端:InputStream in = request.getInputStream();        ...
  • TomyGuan
  • TomyGuan
  • 2009年03月04日 11:44
  • 3879

接口测试(HTTP + XML)

  • 2014年09月24日 17:13
  • 5KB
  • 下载

POST方式提交XML调用接口

POST方式提交XML调用接口
  • xdd19910505
  • xdd19910505
  • 2016年01月31日 13:36
  • 8409
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HTTP+XML方式接口数据传输
举报原因:
原因补充:

(最多只允许输入30个字)