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

通过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流的代码示例,布布扣,bubuko.com

时间: 2024-10-02 03:56:48

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

QT开发(四十四)——流方法解析XML

QT开发(四十四)--流方法解析XML 一.流方法解析XML简介 QT 4.3开始,QT引入了两个新的类来读取和写入XML文档:QXmlStreamReader和QXmlStreamWriter. QXmlStreamReader类提供了一个快速的解析器通过一个简单的流API来读取良构的XML文档,是作为QT的SAX解析器的替代者出现的,比SAX解析器更快更方便.    QXmlStreamReader可以从QIODevice或QByteArray中读取数据.QXmlStreamReader以一

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

[前言]在我们的struts2后端中,实现流的接收和发送.就能够实现向server传视频流以及下载图片. [流接收] 如今举一个传公钥的样例.struts2用一个action接收Key,而Key就是用http二进制流传过来的. 配置文件struts.xml写起来非常easy: <action name="key" class="com.seeplant.action.PublicKeyAction" method="key"> <

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

想写个同类型的,代码未测. 什么是WebAPI?我的理解是WebAPI+JQuery(前端)基本上能完成Web MVC的功能,即:这么理解吧,WebAPI相当于Web MVC的后台部分. 接下来直接上例子吧,都是我在学习过程中遇到或者发现的一些问题.  一.创建WebAPI项目 (这个环节不是本章重点) 二.传递参数遇到的问题 后台实体类(Person): 1 namespace WebApi.Models 2 { 3 public class Person 4 { 5 6 public int

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

首先,本人大学刚毕业,想把自己学习的一些东西记录下来,也是和大家分享,如有不对之处还请多加指正.声明:但凡是我博客里的文章均是本人实际操作遇到的例子,不会随便从网上拷贝或者转载,本着对自己和观众负责的态度. 什么是WebAPI?我的理解是WebAPI+JQuery(前端)基本上能完成Web MVC的功能,即:这么理解吧,WebAPI相当于Web MVC的后台部分. 接下来直接上例子吧,都是我在学习过程中遇到或者发现的一些问题.  一.创建WebAPI项目 (这个环节不是本章重点) 二.传递参数遇

在使用xutils时post请求传递中文到服务端Mysql数据库出现中文乱码。

            在使用xutils时post请求传递中文到服务端Mysql数据库出现中文乱码. 这个问题困惑了我很久,也走了很多弯路.经过不断的探究终于找到了问题的解决方案. 第一:查看自己的mysql的编码.cmd->mysql –uroot –p -->输入自己的mysql的密码->输入 SHOWVARIABLES LIKE 'character%';(如果装mysql时默认安装的话,会出现很多latin1,而不是我下面的全部utf-8,这是因为mysql默认的编码是lati

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

开发者端:发送请求,并接收结果 <?php // 下面的demo,实现的功能如下: // 1-开发者需要判断一个用户是否存在,去请求第三方接口. // 2-与第三方接口的通信,是以xml格式传送数据.开发者把用户信息以xml格式发送给第三方接口 // 3-第三方接口获取开发者的xml数据,通过数据的查询,把结果再以xml的格式发送给开发者. //首先检测是否支持curl if (!extension_loaded("curl")) { trigger_error("对不

Server是如何完成针对请求的监听、接收与响应1

Server是如何完成针对请求的监听.接收与响应的[上] Server是ASP .NET Core管道的第一个节点,负责完整请求的监听和接收,最终对请求的响应同样也由它完成.Server是我们对所有实现了IServer接口的所有类型以及对应对象的统称,如下面的代码片段所示,这个接口具有一个只读属性Features返回描述自身特性集合的FeatureCollection对象,另一个Start方法用于启动服务器. 1: public interface IServer : IDisposable 2

ASP.NET Core真实管道详解[2]:Server是如何完成针对请求的监听、接收与响应的【上】

Server是ASP .NET Core管道的第一个节点,负责完整请求的监听和接收,最终对请求的响应同样也由它完成.Server是我们对所有实现了IServer接口的所有类型以及对应对象的统称,如下面的代码片段所示,这个接口具有一个只读属性Features返回描述自身特性集合的FeatureCollection对象,另一个Start方法用于启动服务器. 1: public interface IServer : IDisposable 2: { 3: IFeatureCollection Fea

ffmpeg接收rtsp流问题

项目使用mingw环境g++5.3,C++调用ffmpeg接收rtsp流,再通过C#显示.结构上是C#调用C++的so文件,读取得到的视频帧(RGB888格式),通过图片控件显示. 一开始是使用opencv打开视频源,本地文件和rtsp的源使用一样的接口,方便使用.但是通过opencv打开rtsp源的时候,发现720p2Mbit的视频能够正常打开,但1080p的视频打开后出马赛克,卡顿比较多. 而同样的视频源,使用VLC就能流畅的打开,不过延时很高,大约1s. 后来又发现,使用i3低电压版CPU