用url请求数据并用pull解析
来源:互联网 发布:mac如何卸载java 编辑:程序博客网 时间:2024/06/04 19:21
package com.bwei.test;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.client.HttpClient;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import com.bwei.adapter.Myadapter2;
import com.bwei.vo.Bean;
import com.lidroid.xutils.BitmapUtils;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class Second extends Activity {
private int id;
private ListView lv;
private String path;
private List<Bean> list2;
Handler hd = new Handler() {
public void handleMessage(android.os.Message msg) {
// lv.setAdapter(adapter);
msg.obj=list2;
tv.setText(list2.get(0).body);
BitmapUtils b=new BitmapUtils(Second.this);
b.display(img, list2.get(0).portrait);
};
};
private TextView tv;
private ImageView img;
private List<Bean> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
// lv = (ListView) findViewById(R.id.se_listview);
// 得到传来的id的值
img = (ImageView) findViewById(R.id.ss_img);
tv = (TextView) findViewById(R.id.ss_tv);
Intent intent = getIntent();
id = intent.getIntExtra("id", 0);
Log.d("msg", id+"id的值!!!!!");
path = "http://www.oschina.net/action/api/tweet_detail?id=" + id;
Log.d("msg", path);
// 进行解析
getData();
// Myadapter2 adapter=new Myadapter2(list, Second.this);
}
private void getData() {
new Thread() {
public void run() {
try {
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
//设置请求的方式
connection.setRequestMethod("GET");
int code = connection.getResponseCode();
if (code == 200) {
// 用流读取到字符串
InputStream is = connection.getInputStream();
list2 = pullJiexi(is);
Message msg=new Message();
msg.obj=list2;
hd.sendMessage(msg);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}.start();
}
// 解析的方法
protected List<Bean> pullJiexi(InputStream is) {
try {
Bean b = null;
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
// 得到流
parser.setInput(is, "utf-8");
// 得到其类型
int type = parser.getEventType();
// 进行判断
while (type != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_DOCUMENT:
list = new ArrayList<Bean>();
break;
case XmlPullParser.START_TAG:
// 进行判断
if ("tweet".equals(parser.getName())) {
b = new Bean();
} else if ("id".equals(parser.getName())) {
b.setId(Integer.parseInt(parser.nextText()));
} else if ("imgBig".equals(parser.getName())) {
b.setImgBig(parser.nextText());
} else if ("portrait".equals(parser.getName())) {
b.setPortrait(parser.nextText());
} else if ("author".equals(parser.getName())) {
b.setAuthor(parser.nextText());
} else if ("body".equals(parser.getName())) {
b.setBody(parser.nextText());
}
break;
case XmlPullParser.END_TAG:
if ("tweet".equals(parser.getName())) {
list.add(b);
}
break;
case XmlPullParser.END_DOCUMENT:
break;
}
type=parser.next();
}
System.out.println("解析成功521" + list.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
}
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.client.HttpClient;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import com.bwei.adapter.Myadapter2;
import com.bwei.vo.Bean;
import com.lidroid.xutils.BitmapUtils;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class Second extends Activity {
private int id;
private ListView lv;
private String path;
private List<Bean> list2;
Handler hd = new Handler() {
public void handleMessage(android.os.Message msg) {
// lv.setAdapter(adapter);
msg.obj=list2;
tv.setText(list2.get(0).body);
BitmapUtils b=new BitmapUtils(Second.this);
b.display(img, list2.get(0).portrait);
};
};
private TextView tv;
private ImageView img;
private List<Bean> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
// lv = (ListView) findViewById(R.id.se_listview);
// 得到传来的id的值
img = (ImageView) findViewById(R.id.ss_img);
tv = (TextView) findViewById(R.id.ss_tv);
Intent intent = getIntent();
id = intent.getIntExtra("id", 0);
Log.d("msg", id+"id的值!!!!!");
path = "http://www.oschina.net/action/api/tweet_detail?id=" + id;
Log.d("msg", path);
// 进行解析
getData();
// Myadapter2 adapter=new Myadapter2(list, Second.this);
}
private void getData() {
new Thread() {
public void run() {
try {
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
//设置请求的方式
connection.setRequestMethod("GET");
int code = connection.getResponseCode();
if (code == 200) {
// 用流读取到字符串
InputStream is = connection.getInputStream();
list2 = pullJiexi(is);
Message msg=new Message();
msg.obj=list2;
hd.sendMessage(msg);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}.start();
}
// 解析的方法
protected List<Bean> pullJiexi(InputStream is) {
try {
Bean b = null;
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
// 得到流
parser.setInput(is, "utf-8");
// 得到其类型
int type = parser.getEventType();
// 进行判断
while (type != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_DOCUMENT:
list = new ArrayList<Bean>();
break;
case XmlPullParser.START_TAG:
// 进行判断
if ("tweet".equals(parser.getName())) {
b = new Bean();
} else if ("id".equals(parser.getName())) {
b.setId(Integer.parseInt(parser.nextText()));
} else if ("imgBig".equals(parser.getName())) {
b.setImgBig(parser.nextText());
} else if ("portrait".equals(parser.getName())) {
b.setPortrait(parser.nextText());
} else if ("author".equals(parser.getName())) {
b.setAuthor(parser.nextText());
} else if ("body".equals(parser.getName())) {
b.setBody(parser.nextText());
}
break;
case XmlPullParser.END_TAG:
if ("tweet".equals(parser.getName())) {
list.add(b);
}
break;
case XmlPullParser.END_DOCUMENT:
break;
}
type=parser.next();
}
System.out.println("解析成功521" + list.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
}
0 0
- 用url请求数据并用pull解析
- 网络请求xml数据,并用pull方式解析
- Pull解析xml文件,并用HttpUtils请求数据接口(示例方法)
- 网络请求数据Pull解析
- Httputils请求数据Pull解析
- HttpClient请求数据(GET)并用JSON解析数据(一)
- HttpURLConnection请求数据(GET)并用JSON解析数据(二)
- url请求数据并解析
- 浅析ajax请求json数据并用js解析(示例分析)
- pull解析请求网络的数据(带分页加载,刷新)
- xml之pull解析和httpuitls请求数据
- URL请求并解析JSON数据
- 【BigData】Jsoup+FusionCharts实现根据网页url解析网页数据,并用图表显示
- HttpURLConnection请求与Pull解析
- Pull解析网络请求文件
- 网络请求xml PULL解析
- 使用okHttp发起请求并用fastJson解析
- HttpUtils 请求数据(pull)
- jQuery中map和each的用法(jquery-1.12.1.js)
- 软中断,tasklet和工作队列的区别与联系
- pushdo
- 强大的矩阵奇异值分解(SVD)及其应用
- 设计模式与架构的核心概念乃是抽象
- 用url请求数据并用pull解析
- 神经网络优化算法选择
- imageview 自定义
- Android系统中自定义按键的短按、双击、长按事件
- HDU 2642 树状数组
- Div span 标签详解
- AssetBundle资料整理
- Spring源码深度解析(八)解析及注册BeanDefinitions
- 用NSURLSession发送网络请求