形容一下业务需求,然后记录方法。
业务需求:
需要向某个固定的URL发送一个带参数的HTTP请求。并解析返回的XML数据,取到有用数据。
例如:
我要向http://111.12.1.2/MWBusinessModel/xmlrpc发送一个含有参数user=test的请求后,会返回如下xml,
<?xml version="1.0" encoding="UTF-8"?><methodResponse><params><param><value><![CDATA[F13D6E31-6687-49F1-9695-A582775B199A]]></value></param></params></methodResponse>
想获取"F13D6E31-6687-49F1-9695-A582775B199A"的值。
代码:
/**
* 取得Content
*
* @param param 需要向请求中传的参数
* @return
*/
public String getContent(String param) {
private static final String XML_RPC_URL = "http://111.2.35.5/MWBusinessModel/xmlrpc";
String xmlResp = null;
try {
xmlResp = hc.doPost(XML_RPC_URL, param);
} catch (ClientProtocolException e) {
logger.error("", e);
} catch (IOException e) {
logger.error("", e);
}
Document doc = null;
try {
//获得document
doc = DocumentHelper.parseText(xmlResp);
} catch (DocumentException e) {
logger.error("", e);
}
Element methodResponseNode = doc.getRootElement();
Element faultNode = methodResponseNode.element("fault");
if (faultNode != null) {
return null;
}
//获取params节点下param节点下的value的值(这种方法自动去掉<![CDATA[]字符串)
Element paramsNode = methodResponseNode.element("params");
Element paramNode = paramsNode.element("param");
Element valueNode = paramNode.element("value");
return valueNode.getText();
}