通过http请求传递xml流和接收xml流的代码示例

//1.在servlet中post一个xml流:
import java.io.OutputStreamWriter;
import org.jdom.Document;
import org.jdom.Document;

public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
//do somthing...
response.setContentType("application/xml");
Document doc = createDoc();
    String strdoc = new XMLOutputter().outputString(doc);
    OutputStreamWriter out = new OutputStreamWriter(response
      .getOutputStream(), "UTF-8");
    out.write(strdoc);
    out.flush();
    out.close();
//do somthing...
}

/***
*将要封装的数据,封装为xml文件的Document格式
*/
public Document createDoc() {
   Document doc = null;
   Element root;
   Element viewentry;
   Element entry;
   List list = getData();
   try {
    XMLOutputter docWriter = new XMLOutputter(" ", true);
    docWriter.setEncoding("UTF-8");
    root = new Element("your_element_name");
    doc = new Document(root);
    root = doc.getRootElement();
    if (list == null || list.size() == 0) {
     return doc;
    }
    Iterator it = list.iterator();
    while (it.hasNext()) {
     Map colMap = (Map) it.next();

viewentry = new Element("document");
     entry = new Element("author");
     entry.setText(colMap.get("userid").toString());
     viewentry.addContent(entry);

//do other entry in this way
     root.addContent(viewentry);
    }
   } catch (Exception e) {
    e.printStackTrace();
   }
   return doc;
}

//2.根据接收的url,从其中获取xml流生成xml文件
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;

import sun.net.www.protocol.http.HttpURLConnection;

public static Document getDocument(String url){
  
   Document doc = null;
   HttpURLConnection conn = null;
   InputStream ins = null;
   SAXReader reader = null;
   try{
    HttpTimeoutHandler hth = new HttpTimeoutHandler(600000);
    URL conURL = new URL(null,url,hth);
    conn = (HttpURLConnection)conURL.openConnection();
    conn.setDoInput(true);
    conn.setDoOutput(true);
    conn.setUseCaches(false);
    ins = conn.getInputStream();
    reader =new SAXReader();
    doc= reader.read(ins);
    ins.close();
    conn.disconnect();
   }catch (MalformedURLException e) {
    e.printStackTrace();
   } catch (IOException e) {
    e.printStackTrace();   
   } catch (DocumentException e) {
    e.printStackTrace();
   }catch(Exception e){
    e.printStackTrace();
   }finally {
    try {
     if (ins != null) {
      ins.close();
      ins = null;
     }
    } catch (IOException e1) {
     e1.printStackTrace();
    }
    try {
     if (conn != null) {
      conn.disconnect();
      conn = null;
     }
    } catch (Exception e2) {
     e2.printStackTrace();
    }
   }
   return doc;
}

3.//处理url超时限制
/***
HttpTimeoutHandler.java
*/
import java.net.*;
import java.io.IOException;

public class HttpTimeoutHandler extends sun.net.www.protocol.http.Handler {
int intTimeoutVal;
HttpURLConnectionTimeout fHUCT;

public HttpTimeoutHandler(int iT) {
   intTimeoutVal = iT;
}

protected java.net.URLConnection openConnection(URL u) throws IOException {
   return fHUCT = new HttpURLConnectionTimeout(u, this, intTimeoutVal);
}

String GetProxy() {
   return proxy;
} // breaking encapsulation

int GetProxyPort() {
   return proxyPort;
} // breaking encapsulation

public void Close() throws Exception {
   fHUCT.Close();
}

public Socket GetSocket() {
   return fHUCT.GetSocket();
}
}

通过http请求传递xml流和接收xml流的代码示例的更多相关文章

  1. 使用postman进行post请求传递中文导致后台接收乱码的问题

    1.个人猜测估计是如果header里不指明编码的话,经过tomcat服务器时会导致转换乱码信息,这样就算你在filter里配置了EncodingFilter相关的过滤器也无济于事.. 解决方法就是在h ...

  2. rabbitmq AmqpClient 使用Direct 交换机投递与接收消息,C++代码示例

    // 以DIRECT 交换机和ROUTING_KEY的方式进行消息的发布与订阅 // send // strUri = "amqp://guest:guest@192.168.30.11:8 ...

  3. rabbitmq AmqpClient 使用Topic 交换机投递与接收消息,C++代码示例

    // strUri = "amqp://guest:guest@192.168.30.11:8820/test" // strUri = "amqp://[帐户名]:[密 ...

  4. rabbitmq AmqpClient 使用Fanout 交换机投递与接收消息,C++代码示例

    fanout交换器重点内容非常简单.它只会将接收到的所有消息广播发送到它所知道的所有队列. 投递消息到交换机: #include "SimpleAmqpClient/SimpleAmqpCl ...

  5. .net webapi 接收 xml 格式数据的三种情况

    webapi 接收 xml 的三种方法 前段时间接到一个任务写一个小接口,要接收java端返回过来的短信xml数据. 刚拿到项目,我的第一想法是对方会以什么形式发送xml格式的数据给我呢,设想三种情况 ...

  6. 【struts2】struts2中的流接收与流发送

    [前言]在我们的struts2后端中,实现流的接收和发送.就能够实现向server传视频流以及下载图片. [流接收] 如今举一个传公钥的样例.struts2用一个action接收Key,而Key就是用 ...

  7. PHP通过XML报文格式的POST请求方式,与第三方接口交互(发送xml,获取XML,并解析xml步骤)

    开发者端:发送请求,并接收结果 <?php // 下面的demo,实现的功能如下: // 1-开发者需要判断一个用户是否存在,去请求第三方接口. // 2-与第三方接口的通信,是以xml格式传送 ...

  8. Ajax请求传递参数遇到的问题

    想写个同类型的,代码未测. 什么是WebAPI?我的理解是WebAPI+JQuery(前端)基本上能完成Web MVC的功能,即:这么理解吧,WebAPI相当于Web MVC的后台部分. 接下来直接上 ...

  9. WebAPI学习日记一:Ajax请求传递参数遇到的问题

    首先,本人大学刚毕业,想把自己学习的一些东西记录下来,也是和大家分享,如有不对之处还请多加指正.声明:但凡是我博客里的文章均是本人实际操作遇到的例子,不会随便从网上拷贝或者转载,本着对自己和观众负责的 ...

随机推荐

  1. Android studio代码实现打电话+点击事件四种方式

    Android系统架构(重点) 第一层:应用层Application 第二层:应用框架层Application Framework 第三层:Android底层类库层 Libraries.Dalvik虚 ...

  2. Ubuntu 17.04 搭建 NodeJS

    可以在云主机上执行以下的命令: apt-get update apt-get install -y python-software-properties software-properties-com ...

  3. Windows下安装mysql cluster

    0.mysql集群介绍 浅谈mysql集群——http://blog.csdn.net/chenxingzhen001/article/details/7708663: 官网——http://dev. ...

  4. 使用Merge存储引擎实现MySQL分表

    一.使用场景 Merge表有点类似于视图.使用Merge存储引擎实现MySQL分表,这种方法比较适合那些没有事先考虑分表,随着数据的增多,已经出现了数据查询慢的情况. 这个时候如果要把已有的大数据量表 ...

  5. React Native踩坑之The SDK directory 'xxxxx' does not exist

    相信和我一样,自己摸索配置环境的过程中,第一次配,很可能就遇到了这个比较简单地错误,没有配置sdk环境 解决办法 在电脑,系统环境变量中,添加一个sdk的环境变量 uploading-image-95 ...

  6. m3u8转mp4

    先进行一波操作 新建一个文件夹,里面床两个txt文件 如图 里面随意写一些内容 之后新建一个demo.bat文件.里面输入 copy /b 1.txt+2.txt new.txt 之后双击会有一个ne ...

  7. 【SQL】181. Employees Earning More Than Their Managers

    The Employee table holds all employees including their managers. Every employee has an Id, and there ...

  8. OpenVAS漏洞扫描基础教程之创建用户

    OpenVAS漏洞扫描基础教程之创建用户 OpenVAS管理服务 默认情况下,OpenVAS服务仅创建了一个名为admin的用户,而且是管理员用户(拥有最高的权限).如果想要其它客户端登陆的话,不可能 ...

  9. get与post区别大揭秘

    以往的标准答案: GET在浏览器回退时是无害的,而POST会再次提交请求. GET请求会被浏览器主动cache,而POST不会,除非手动设置. GET请求只能进行url编码,而POST支持多种编码方式 ...

  10. bzoj 1209

    三维凸包裸题. 1.通过volume计算有向体积,判断点与面的位置关系. 2.噪声 /********************************************************* ...