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");
             .........

     }

   }

}

 

相关文章推荐

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

package com.infowarelab.test;     import java.io.BufferedInputStream;  import java.io.Buffere...

XMLHTTP使用详解

XMLHTTP对象是Microsoft的MSXML开发包中带的一个用HTTP,XML协议访问web资源的对象. 从MSXML3.0开始出现. 它在AJAX技术中主要用来从其他网络资源获取信息,然后由j...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

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

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

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

为测试接口简单写了个小工具,先留下个备份…… 接口测试 body {font-size:12px; font-family:Tahoma;} .ti...

关于通过JAVA的HTTP POST请求传输XML型数据

关于跨域传输XML数据,由于刚接触到,碰到了许多问题。这里把一些相关方法记录下来,也给大家提供一些参考(新手适用,高手请过 嘿嘿)。 Client:通过HTTP POST方式请求并接收返回数据。(用...

两种接口传送数据协议(xml和json)

规范性接口开发中,一般数据是以json或者xml的格式传送的,而不是字符串的形式直接返回给接口调用者;下面介绍这两种格式的编写方法。    下面两种数据传送方式是接口输出端的编写。需引入的包如下: ...

HTTP接口发送XML短信

记录下来,下次碰到还可以查查。 /** * 发送XML短信 * * @param mobile * @param content * @return */ public s...

POST方式提交XML调用接口

POST方式提交XML调用接口

真正的中国天气api接口xml,json(求加精) ...

我只想说现在网上那几个api完全坑爹有木有??? 官方的申请不来有木有,还有收费有木有?? 咱这种菜鸟只能用免费的了!!!! http://m.weather.c...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HTTP+XML方式接口数据传输
举报原因:
原因补充:

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