求教,怎么用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文本也可以