首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

求教,如何用HTTP传送XML

2012-02-27 
求教,怎么用HTTP传送XML?做一个接口和其他系统交互,对方给的文档如下XML code发送内容?xml version1.0

求教,怎么用HTTP传送XML?
做一个接口和其他系统交互,对方给的文档如下

XML code
发送内容<?xml version="1.0" encoding="GB2312"?><Request>      <Details>        <SearchItem Type="aa">            <Item Type="bb" Code="vv" />        </SearchItem>    </Details></Request>




XML code
返回的内容<?xml version="1.0" encoding="GB2312" ?><Response>    <Details>    <SearchResponse ItemType="bb">       <ItemDetails>         <ItemDetail>          <City Code="111"><![苏州]></City>          <Item Code="123"><![xxxxx]></Item>         </ItemDetail>       </ItemDetails>   </SearchResponse>  </Details></Response>

请问这种交互是不是用HTTP传送XML文件?这个怎么实现?

是根据用户的输入构造成这种XML在用HTTP请求传送过去,还是构造成一个包含这种格式的string类型再发送?

返回的是个字节流把,是不是要先构造成一个XML文件在进行解析啊?没经验,请做过的大哥说下

[解决办法]
推荐你2种方法。

第一,以纯文本发送,也就是你所说的,把XML以string的方式发送。 (可跨平台,最佳兼容性)
第二,以对象发送,这个就是传送数据结构及内容,用的是SOAP协议。

推荐使用第一种。首先,创建一个端口进行通信。 你要的class都在这个包里 java.net.*。

然后发送XML。 

Java也有自带的XML Parser,可以用来提取和编写XML信息。如果我没记错的话,是javax.xml.*。Parser 分2种,SAX(阅读文件,从头到尾,一次性)和DOM(整个XML文件放入内存阅读,方便,不适宜大型文件)。
[解决办法]
1. 在浏览器端使用AJAX发送(jQuery的):
$.post("url", {xmlContent: xmlString}, function(responseXml) {
console.log(responseXml);
});

2. 服务器端返回xml:
HttpServletResponse response = ....// 这里看J2EE的内容怎么取得,如果是Servlet的可以直接用
response.setContentType("text/xml"); // 指定返回的字符串是xml格式的字符串
response.getWriter().println(xmlString);

上面的两个xmlString是xml格式的字符串
[解决办法]
webservice是可以的。
[解决办法]
用webservice吧,乍看起来符合你的情况
[解决办法]
Webservice,

httpClient

都是可以的
[解决办法]
其实你说的就是我说的第一中。 

用XML Parser/Factory可以构造XML的结构,也可以放入数据。 完后的输出就是一个完整的XML。
然后以文本方式传送。

第二种是对象传送。传送的都是2进制代码。不适合HTTP协议。

[解决办法]
Webservice,

httpClient

都是可以的, 建议用httpClient,选POST方式
[解决办法]
1. webservice,使用json格式返回就成
2. 返回一个字符串或者一个xml文本也可以

热点排行