Pull解析方式
来源:互联网 发布:seo点击软件 编辑:程序博客网 时间:2024/06/06 18:27
运行截图
MainActivity.java
package csdn.example.com.notification.NetWorkTest;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;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.IOException;import java.io.StringReader;import csdn.example.com.notification.R;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.Response;public class Main6Activity extends AppCompatActivity implements View.OnClickListener { TextView request_text; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main6); request_text = (TextView) findViewById(R.id.request_text); Button send_Request = (Button) findViewById(R.id.send_request); send_Request.setOnClickListener(this); } @Override public void onClick(View v) { if(v.getId() == R.id.send_request){ Log.d("T","没毛病,老铁"); //sendRequestWithHttpURLConnection(); sendRequestWithOkHttp(); } } private void sendRequestWithOkHttp() { new Thread(new Runnable() { @Override public void run() { try { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("http://10.7.90.163:8088/get_data.xml") .build(); Response response = client.newCall(request).execute(); String requestData = response.body().string(); parseXMLWithPull(requestData); showResponse(requestData); } catch (IOException 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("Main6Activity","id is "+id); Log.d("Main6Activity","name is "+name); Log.d("Main6Activity","version is "+version); } } default: break; } eventType = xmlPullParser.next(); } } catch (Exception e) { e.printStackTrace(); } } private void showResponse(final String response) { runOnUiThread(new Runnable() { @Override public void run() { Log.d("T","没毛病,老铁1"+response); request_text.setText(response); } }); }}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/send_request" android:text="发送请求" /> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/colorAccent" > <TextView android:background="@color/colorPrimary" android:id="@+id/request_text" android:layout_width="match_parent" android:layout_height="wrap_content" /> </ScrollView></LinearLayout>
阅读全文
0 0
- Pull解析Xml方式
- PULL方式解析xml
- xml解析--Pull方式
- Pull解析方式
- pull方式解析xml
- Pull解析方式
- Android Pull方式解析XML
- android pull 解析xml方式
- android pull 解析xml方式
- Android解析XML(PULL方式)
- 使用PULL方式解析XML
- pull 方式解析xml文件
- 使用pull方式解析XML
- android pull 解析xml方式
- Pull方式解析XML文件
- XML的pull解析方式
- Xml的PULL解析方式
- Xml的pull解析方式
- Spring与ActiveMQ整合
- 泛型小结
- hdu2818(带权并查集)
- 克鲁斯卡尔算法求最大/最小生成树
- 辗转相除法
- Pull解析方式
- Autowired 区别 Resource Spring中 @Autowired注解与@Resource注解的区别
- 教你彻底学会动态规划——入门篇
- CSS学习重点总结(一)
- thinkphp3.1.2 URL
- git安装后的配置项
- 频道管理方法二
- LoRa信道争抢怎么办?传说中的冲突退避管用吗?
- HDU