网络请求——XML解析
来源:互联网 发布:身份证复印件软件下载 编辑:程序博客网 时间:2024/05/21 20:24
请求到的是xml文件
package com.example.kaoshi;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import java.util.ArrayList;import org.apache.http.HttpResponse;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserException;import com.example.adapter.MyAdapter;import com.example.bean.News;import android.os.AsyncTask;import android.os.Bundle;import android.app.Activity;import android.util.Xml;import android.view.Menu;import android.widget.ListView;public class MainActivity extends Activity { private ListView lv_list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv_list = (ListView) findViewById(R.id.lv_list); // 网络请求数据 MyAsyncTask myAsyncTask = new MyAsyncTask(); myAsyncTask.execute("http://www.oschina.net/action/api/news_list"); } public class MyAsyncTask extends AsyncTask<String, Void, String> { private ArrayList<News> newList; private News news; private XmlPullParser pullParser; @Override protected String doInBackground(String... params) { //得到数据 String info = getInfo(params[0]); return info; } @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); } @Override protected void onPostExecute(String result) { pullParser = Xml.newPullParser(); try { //将string转换成字节流 pullParser.setInput( new ByteArrayInputStream(result.getBytes("UTF-8")), "utf-8"); //得到事件类型 int eventType = pullParser.getEventType(); while (eventType != pullParser.END_DOCUMENT) { String name = pullParser.getName(); switch (eventType) { case XmlPullParser.START_TAG: if ("newslist".equals(name)) { // 创建集合 newList = new ArrayList<News>(); } else if ("news".equals(name)) { // 创建对象 news = new News(); } else if ("id".equals(name)) { // 属性 news.id = pullParser.nextText(); } else if ("title".equals(name)) { // 属性 news.title = pullParser.nextText(); } else if ("body".equals(name)) { // 属性 news.body = pullParser.nextText(); } break; case XmlPullParser.END_TAG: if ("news".equals(name)) { newList.add(news); } break; default: break; } eventType = pullParser.next(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } lv_list.setAdapter(new MyAdapter(MainActivity.this, newList)); super.onPostExecute(result); } } public String getInfo(String string) { try { URL url = new URL(string); HttpURLConnection openConnection = (HttpURLConnection) url .openConnection(); openConnection.setRequestMethod("GET"); openConnection.setReadTimeout(5000); int responseCode = openConnection.getResponseCode(); if (responseCode == 200) { //得到流 InputStream inputStream = openConnection.getInputStream(); int len; byte[] b = new byte[1024]; ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); while ((len = inputStream.read(b)) != -1) { outputStream.write(b, 0, len); } System.out.println(outputStream.toString()); return outputStream.toString(); } } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } return null; }}
0 0
- 网络请求——XML解析
- xml解析网络请求
- 网络请求XML解析XML
- Android网络与数据存储——网络编程数据处理(网络请求解析Json,解析xml)
- HttpClient请求网络 xml解析
- 网络请求xml PULL解析
- 菜鸟学习之路——网络学习GET请求与JSON、XML解析
- 网络数据请求和XML 数据解析
- MKNetworkKit 网络请求 + XML数据解析
- Xml pull解析,XUtils网络请求
- AsyncTask+HttpUrlConnection网络请求解析XML且定位
- 网络请求xml数据,并用pull方式解析
- 通过httpUtils请求网络xml数据进行解析
- xml解析,httputils网络请求,imageloder图片加载
- iOS网络编程开发—JSON解析与XML解析
- 深度解析ios网络请求 get——post 区别
- 网络请求与json数据解析——学习笔记
- Retrofit网络请求库应用02——json解析
- Java并发编程:阻塞队列
- Activity和Fragment的生命周期
- 常见排序算法(二)
- 亚马逊 在线笔试 2014-10-9 比较扑克牌序列
- ios开发学习笔记--Core Motion
- 网络请求——XML解析
- activiti 自定义用户、组
- thinkphp3.2,URL重写
- 栈
- 圆柱
- GDOI 2016 Day1 T2 最长公共子串
- excel 2003代码
- 磁盘排序算法(多路归并、位图)
- android异步任务及接口回调传输数据