-
通过HttpClient访问数据接口
日期:2011-11-16 | 分类:技术
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://gang613.blogbus.com/logs/174327580.html
PI的访问接口可以用Http Post/Get方式访问,返回值为XML。
1)采用Post方法。参数inXml,参数值为XML格式,服务端接收的格式为"application/x-www-form-urlencoded",具体方法如下:PostMethod post = new PostMethod(PI_EndPoint_HisData);
post.setRequestHeader(Content-Type",application/x-www-form-urlencoded;charset=utf-8");
HttpClient httpclient = new HttpClient();
StringBuilder sb = new StringBuilder();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sb.append("");
for (String tagId : tagIdList) {
sb.append(" sb.append(" Stime=\"" + sdf.format(start) + "\"");
sb.append(" Etime=\"" + sdf.format(end) + "\"/>");
}
sb.append("");
NameValuePair[] data = {
new NameValuePair("inXml",sb.toString())
};
post.setRequestBody(data);
int result = httpclient.executeMethod(post);
String resp = post.getResponseBodyAsString();2)返回值为XML,其中根节点包括了NameSpace,在采用JDom处理时要加入NameSpace
ByteArrayInputStream bis = new ByteArrayInputStream(resp.getBytes());
SAXBuilder builder = new SAXBuilder(false);
Document doc = builder.build(bis);
Element root = doc.getRootElement();
Namespace ns = root.getNamespace();
Element point = rNode.getChild("Point",ns);
......
收藏到:Del.icio.us







