Android通过post请求发送一个xml,解析返回xml数据
2013-05-31 17:00
369 查看
工作的时候需要往后台发送一个post数据请求
其中发送的xml数据为:
<?xml version = “1.0” ?> <SSOMessage version=”1.0”> <SSOParas> <SeqID>SeqID</SeqID> <CommandID>CommandID</CommandID> <MSISDN>ABSCDSDF</MSISDN> <ChargeMSISDN>ChargeMSISDN</ChargeMSISDN> <SPID>SPID</SPID> <Code> Code </ Code > < IDtype > IDtype 0</ IDtype > <ID> ID 0</ID> </SSOParas> </SSOMessage>
返回的xml数据为:
<?xml version = “1.0” ?> <SSOMessage version=”1.0”> <SSOParas> <SeqID>SeqID</SeqID> <ResultCode>ResultCode0</ResultCode> </SSOParas> </SSOMessage>
然后进行解析,代码如下,参考一下,对于以后再做post请求的时候,做参考
class httpThread implements Runnable { /* (non-Javadoc) * @see java.lang.Runnable#run() */ @Override public void run() { // TODO Auto-generated method stub //组建xml数据 StringBuilder xml = new StringBuilder(); xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); xml.append("<SSOMessage version=\"1.0\">"); xml.append("<SSOParas>"); xml.append("<SeqID>13333333333</SeqID>"); xml.append("<CommandID>1</CommandID>"); xml.append("<MSISDN>1333333333</MSISDN>"); xml.append("<ChargeMSISDN>1333333333</ChargeMSISDN>"); xml.append("<SPID>3510127</SPID>"); xml.append("<Code></Code>"); xml.append("<IDtype>0</IDtype>"); xml.append("<ID>135000000000000216559</ID>"); xml.append("</SSOParas>"); xml.append("</SSOMessage>"); try { byte[] xmlbyte = xml.toString().getBytes("UTF-8"); System.out.println(xml); URL url = new URL("http://118.85.194.28:8080/sotpms_server/GetSSOMessage"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5000); conn.setDoOutput(true);// 允许输出 conn.setDoInput(true); conn.setUseCaches(false);// 不使用缓存 conn.setRequestMethod("POST"); conn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接 conn.setRequestProperty("Charset", "UTF-8"); conn.setRequestProperty("Content-Length", String.valueOf(xmlbyte.length)); conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8"); conn.setRequestProperty("X-ClientType", "2");//发送自定义的头信息 conn.getOutputStream().write(xmlbyte); conn.getOutputStream().flush(); conn.getOutputStream().close(); if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败"); InputStream is = conn.getInputStream();// 获取返回数据
// 使用输出流来输出字符(可选) ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] buf = new byte[1024]; int len; while ((len = is.read(buf)) != -1) { out.write(buf, 0, len); } String string = out.toString("UTF-8"); System.out.println(string); out.close(); // xml解析 String version = null; String seqID = null; XmlPullParser parser = Xml.newPullParser(); try { parser.setInput(new ByteArrayInputStream(string.substring(1) .getBytes("UTF-8")), "UTF-8"); parser.setInput(is, "UTF-8"); int eventType = parser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { if (eventType == XmlPullParser.START_TAG) { if ("SSOMessage".equals(parser.getName())) { version = parser.getAttributeValue(0); } else if ("SeqID".equals(parser.getName())) { seqID = parser.nextText(); } else if ("ResultCode".equals(parser.getName())) { resultCode = parser.nextText(); } } eventType = parser.next(); } } catch (XmlPullParserException e) { e.printStackTrace(); System.out.println(e); } catch (IOException e) { e.printStackTrace(); System.out.println(e); } System.out.println("version = " + version); System.out.println("seqID = " + seqID); System.out.println("resultCode = " + resultCode);*/ } catch (Exception e) { // TODO Auto-generated catch block System.out.println(e); } }
相关文章推荐
- Android通过post请求发送一个xml,解析返回xml数据
- 使用HttpClient 发送get、post请求,及其解析xml返回数据
- Android C++ Socket请求XMl,TinyXml解析文件,JNI返回数据给JAVA层
- 实习第一天——做一个录音上传服务器的小功能pttp协议post发送文件和参数到服务器,解析返回的json数据
- java 通过发送json,post请求,返回json数据
- 初涉Ajax,以post或get方法发送数据,以json或xml形式接收服务器返回的请求
- Android的okhttp的post请求,php返回json数据。以及遇到的okhttp dispatcher问题,和json解析遇到的问题
- 通过soap请求webservice时,返回的数据是XML类型,有时候也需要解析本地的xml数据等,苹果自带类NSXMLParser解析xml还是很方便的,简单轻便
- android中通过GET方法接收数据并通过xml解析数据,POST方法向服务器提交数据
- 解析HTTP POST方式请求的xml数据、本地XML文件数据, 并返回JSON字符串
- PHP通过XML报文格式的POST请求方式,与第三方接口交互(发送xml,获取XML,并解析xml步骤)
- Android向Web服务器发送Post请求并返回数据
- android发送http post请求函数带参数带返回数据 静态类 源码
- Android向Web服务器发送Post请求并返回数据
- echarts通过ajax向服务器发送post请求,servlet从数据库读取数据并返回前端
- android菜鸟学习笔记25----与服务器端交互(二)解析服务端返回的json数据及使用一个开源组件请求服务端数据
- echarts通过ajax向服务器发送post请求,servlet从数据库读取数据并返回前端
- java 通过发送json,post请求,返回json数据的方法
- 前端jQuery向后台发送POST请求并接收后台返回的数据(C#)
- Android 通过Get/Post提交请求数据到服务器