XML檔案建立已經Apache服務器建立已經在上一篇介紹過,此處不再多過闡述
正文:
添加jar包
implementation 'com.squareup.okhttp3:okhttp:3.4.1'
閉包里申請網路權限
<uses-permission android:name="android.permission.INTERNET"/>
布局檔案中就一個Button,此處不再闡述,決議的XML資料將以日志方式體現
MainActivity.java代碼如下:
public class MainActivity extends AppCompatActivity {
private Button Request;
private TextView ResponseText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Request = (Button) findViewById(R.id.Click);
ResponseText = (TextView) findViewById(R.id.Response);
Request.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SendRequestToOkhttp();
}
});
}
private void SendRequestToOkhttp() {
new Thread(new Runnable() {
@Override
public void run() {
try {
OkHttpClient Client = new OkHttpClient();
Request request = new Request.Builder().url("http://192.168.0.60/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("ID = ",id+"");
Log.d("Name = ",name+"");
Log.d("Version = ",version+"");
}
break;
}
}
eventType = xmlPullParser.next();
}
}catch (Exception e){
e.printStackTrace();
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/260629.html
標籤:其他
上一篇:Android解決getExternalStorageDirectory在29后廢棄問題,親測能用
下一篇:尋最新微信強制分享紅包原始碼
