形容一下业务需求,然后记录方法。
业务需求:
需要向某个固定的URL发送一个带参数的HTTP请求。并解析返回的XML数据,取到有用数据。
例如:
我要向http://111.12.1.2/MWBusinessModel/xmlrpc发送一个含有参数user=test的请求后,会返回如下xml,
class="xml" name="code"><?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();
	}
?