android http请求并解析返回的xml

String requestUrl = RequestUrlMng.getHost(context)+"/mservices/user/updateNickname.action?nickname="+nickname;
HttpGet httpRequest = new HttpGet(requestUrl);
try{
	HttpClient httpClient = new DefaultHttpClient();
	HttpResponse httpResponse = httpClient.execute(httpRequest);
	if(httpResponse.getStatusLine().getStatusCode() != HttpStatus.SC_OK)
	{
	     Log.e("XXX", "can't reach:"+httpResponse.getStatusLine().getStatusCode());
	     return;
	}
	SAXParserFactory factory = SAXParserFactory.newInstance();
	SAXParser parser = factory.newSAXParser();
	XMLContentHandler handler = new XMLContentHandler();
	parser.parse(httpResponse.getEntity().getContent(), handler);
	Toast.makeText(context, handler.getResult().getStatus()+":"+handler.getResult().getMsg(), Toast.LENGTH_LONG).show();
}catch(Exception e){
	Log.e("XXX", e.getMessage());
}

class XMLContentHandler extends DefaultHandler{
		private RequestResult res;
		private static final String STATUS = "status";
		private static final String MSG = "msg";
		private String tmpStr;
		private String content;
		public RequestResult getResult(){
			return res;
		}
		@Override
		public void startDocument() throws SAXException{
			
		}
		@Override
		public void characters(char[] ch,int start,int length)
		                    throws SAXException{

		     content = new String(ch,start,length);


		}
		@Override
		public void startElement(String uri,String localName,String name
				,Attributes attrs) throws SAXException{
			if("result".equals(localName)){
				res = new RequestResult();
				Log.i("XXX", "<result>");
			}
			tmpStr = localName;
		}
		@Override
		public void endElement(String uri,String localName,String name)
		                          throws SAXException{
			if(STATUS.equals(localName))
				res.setStatus(content);
			else if(MSG.equals(localName))
				res.setMsg(content);
			if("result".equals(localName))
				Log.i("XXX", "</result>");
			else
			    Log.i("XXX", "<"+localName+">"+content+"</"+localName+">");
		}
	}

xml文件格式:

<result>
<status>0</status>
<msg>成功</msg>
</result>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值