摘要:本文将带你了解Android应用开发之Android网络技术之XML解析,希望本文对大家学Android有所帮助。
本文将带你了解Android应用开发之Android网络技术之XML解析,希望本文对大家学Android有所帮助。
安装apache
在其目录中添加.xml文件进行解析
注意安卓访问本机需要的ip是10.0.2.2
package com.wangkangli.okhttplearn; import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.TextView; import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserFactory; import java.io.StringReader; import okhttp3.FormBody;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.RequestBody;import okhttp3.Response;import okhttp3.ResponseBody; public class MainActivity extends AppCompatActivity implements View.OnClickListener { TextView responseText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button sendRequest = findViewById(R.id.send_request); responseText= findViewById(R.id.response_text); sendRequest.setOnClickListener(this); } @Override public void onClick(View v) { if (v.getId()==R.id.send_request){sendRequestWithOkHttp(); } } private void sendRequestWithOkHttp(){ new Thread(new Runnable() {@Overridepublic void run() { try { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().url("https://10.0.2.2/get_data.xml").build(); Response response = client.newCall(request).execute(); String responseData = response.body().string(); parseXMLWithPull(responseData); }catch (Exception e){ e.printStackTrace(); }} }).start(); } private void parseXMLWithPull(String xmlData){ try{XmlPullParserFactory factory = XmlPullParserFactory.newInstance();XmlPullParser xmlPullParser = factory.newPullParser();xmlPullParser.setInput(new StringReader(xmlData));int eventType = xmlPullParser.getEventType();String id ="";String name = "";String version = ";";while(eventType!=XmlPullParser.END_DOCUMENT){ String nodeName = xmlPullParser.getName(); switch (eventType){ case XmlPullParser.START_TAG:{if ("id".equals(nodeName)){ id = xmlPullParser.nextText();}else if ("name".equals(nodeName)){ name = xmlPullParser.nextText();}else if ("version".equals(nodeName)){ version = xmlPullParser.nextText();}break; } case XmlPullParser.END_TAG:{if ("app".equals(nodeName)){ Log.d("MainActivity","id is"+ id); Log.d("MainActivity","name is"+ name); Log.d("MainActivity","version is"+ version); }break; } default:break; } eventType = xmlPullParser.next(); } }catch (Exception e){e.printStackTrace(); } } private void showResponse(final String response){ runOnUiThread(new Runnable() {@Overridepublic void run() { responseText.setText(response);} }); }}
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注移动开发之Android频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号