POST方法向服务器传XML格式数据,并解析获取的数据。

XML数据格式为:

<xml> 
    <ToUserName><![CDATA[xxx]]></ToUserName>
    <FromUserName><![CDATA[xxx]]></FromUserName>
    <CreateTime>1234567</CreateTime>                                                                                                                                                                                                                                        
    <Content><![CDATA[xxx]]></Content>
</xml>
public class MainActivity extends Activity {
    final String data = "<xml> <ToUserName><![CDATA[xxx]]></ToUserName><FromUserName><![CDATA[xxx]]></FromUserName><CreateTime>1234567</CreateTime><Content><![CDATA[xxx]]></Content></xml>";  
     final String url = "xxxxxx";  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//      setContentView(R.layout.activity_main);

        httpRequest();
    }
private void httpRequest() {
        StringEntity body = null;
        try {
            body = new StringEntity(data,"UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        AsyncHttpClient asyncClient = new AsyncHttpClient(true, 80, 443);
        asyncClient.addHeader("Content-Type", "application/xml");
        asyncClient.addHeader("Accept", "application/xml");
        asyncClient.post(null, url, body, "application/xml",
                new AsyncHttpResponseHandler() {
            @Override
            public void onSuccess(int statusCode, Header[] headers,
                    byte[] responseBody) {
                String response = new String(responseBody);
                Log.e("123","onSuccess(). response: "+ response);
                parseXML(response);
            }

            @Override
            public void onFailure(int statusCode, Header[] headers,
                    byte[] responseBody, Throwable error) {
                String response = new String(responseBody);
                Log.e("123","onFailure(). response: "+ response);
            }
        });
    }

XMLPullParser方法解析获取到的XML格式的结果:

public String parseXML(String string) {
        String content = null;
        String toUserName = null;
        XmlPullParser parser = Xml.newPullParser();
        try {
            parser.setInput(new ByteArrayInputStream(string.getBytes()),
                    "UTF-8");
            int event = parser.getEventType();
            while (event != XmlPullParser.END_DOCUMENT) {
                switch (event) {
                case XmlPullParser.START_TAG:
                    if ("ToUserName".equals(parser.getName())) {
                        toUserName = parser.nextText();
                        Log.e("toUserName", "a:toUserName=" + toUserName);
                        event = parser.next();
                    } else if ("Content".equals(parser.getName())) {
                        content = parser.nextText();
                        Log.e("parseXML", "a:content=" + content);
                        IraylinkSpeak.getInstance(context).speak(content);
                        event = parser.next();
                    }
                    break;
                case XmlPullParser.END_TAG:
                    break;
                }
                event = parser.next();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        return content;
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值