第三方的httputils请求数据和xml的pull解析
来源:互联网 发布:mac如何卸载java 编辑:程序博客网 时间:2024/05/24 00:45
package com.bwei.test;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import org.xml.sax.InputSource;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import com.bwei.adapter.Myadapter;
import com.bwei.vo.Bean;
import com.bwei.xlistview.XListView;
import com.bwei.xlistview.XListView.IXListViewListener;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
import com.lidroid.xutils.http.client.multipart.content.ByteArrayBody;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
public class MainActivity extends Activity implements IXListViewListener {
String path = "http://www.oschina.net/action/api/tweet_list?uid=0&pageSize=10&pageIndex=";
private List<Bean> list=new ArrayList<Bean>();
private XListView lv;
boolean flags=true;
Handler hd=new Handler(){
public void handleMessage(android.os.Message msg) {
if(msg.what==1){
adapter.lvDown(list);
}else if(msg.what==2){
adapter.lvUp(list);
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//寻找控件
lv = (XListView) findViewById(R.id.xlistview);
lv.setPullLoadEnable(true);
lv.setPullRefreshEnable(true);
lv.setXListViewListener(this);
adapter = new Myadapter(list, MainActivity.this);
lv.setAdapter(adapter);
getData();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
//进行跳转带值
Intent intent=new Intent(MainActivity.this, Second.class);
intent.putExtra("id", list.get(position-1).id);
startActivity(intent);
}
});
}
// 请求数据
public void getData() {
// 采用第三方来请求数据
HttpUtils utils = new HttpUtils();
utils.send(HttpMethod.GET, path, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
System.out.println("请求失败!");
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
// 返回的xml字符串
String xml = arg0.result;
// 放在流中以便pull解析
InputStream is = new ByteArrayInputStream(xml.getBytes());
// 在此调用解析的方法,将流装进去
pullJiexi(is);
//list里面已经装了所有数据
if(flags==true){
hd.sendEmptyMessage(1);
}else{
hd.sendEmptyMessage(2);
}
}
});
}
// 解析的方法
protected void 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("解析成功"+list.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onRefresh() {
path=path+1;
flags=true;
getData();
//关闭
lv.stopLoadMore();
lv.stopRefresh();
}
int i=1;
private Myadapter adapter;
@Override
public void onLoadMore() {
i++;
path=path+i;
flags=false;
getData();
lv.stopLoadMore();
lv.stopRefresh();
}
}
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import org.xml.sax.InputSource;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import com.bwei.adapter.Myadapter;
import com.bwei.vo.Bean;
import com.bwei.xlistview.XListView;
import com.bwei.xlistview.XListView.IXListViewListener;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
import com.lidroid.xutils.http.client.multipart.content.ByteArrayBody;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
public class MainActivity extends Activity implements IXListViewListener {
String path = "http://www.oschina.net/action/api/tweet_list?uid=0&pageSize=10&pageIndex=";
private List<Bean> list=new ArrayList<Bean>();
private XListView lv;
boolean flags=true;
Handler hd=new Handler(){
public void handleMessage(android.os.Message msg) {
if(msg.what==1){
adapter.lvDown(list);
}else if(msg.what==2){
adapter.lvUp(list);
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//寻找控件
lv = (XListView) findViewById(R.id.xlistview);
lv.setPullLoadEnable(true);
lv.setPullRefreshEnable(true);
lv.setXListViewListener(this);
adapter = new Myadapter(list, MainActivity.this);
lv.setAdapter(adapter);
getData();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
//进行跳转带值
Intent intent=new Intent(MainActivity.this, Second.class);
intent.putExtra("id", list.get(position-1).id);
startActivity(intent);
}
});
}
// 请求数据
public void getData() {
// 采用第三方来请求数据
HttpUtils utils = new HttpUtils();
utils.send(HttpMethod.GET, path, new RequestCallBack<String>() {
@Override
public void onFailure(HttpException arg0, String arg1) {
System.out.println("请求失败!");
}
@Override
public void onSuccess(ResponseInfo<String> arg0) {
// 返回的xml字符串
String xml = arg0.result;
// 放在流中以便pull解析
InputStream is = new ByteArrayInputStream(xml.getBytes());
// 在此调用解析的方法,将流装进去
pullJiexi(is);
//list里面已经装了所有数据
if(flags==true){
hd.sendEmptyMessage(1);
}else{
hd.sendEmptyMessage(2);
}
}
});
}
// 解析的方法
protected void 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("解析成功"+list.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onRefresh() {
path=path+1;
flags=true;
getData();
//关闭
lv.stopLoadMore();
lv.stopRefresh();
}
int i=1;
private Myadapter adapter;
@Override
public void onLoadMore() {
i++;
path=path+i;
flags=false;
getData();
lv.stopLoadMore();
lv.stopRefresh();
}
}
0 0
- 第三方的httputils请求数据和xml的pull解析
- 第三方xUtils中HttpUtils请求网络数据与Pull解析
- Httputils请求数据Pull解析
- pull解析请求网络的数据(带分页加载,刷新) xlistview HttpUtils
- HttpUtils&Pull解析XML
- Pull解析xml文件,并用HttpUtils请求数据接口(示例方法)
- HttpUtils 请求数据(pull)
- xml解析(pull)httputils
- httpUtils请求XML数据
- 请求第三方接口返回json格式数据的解析
- HttpUtils解析xml数据
- xml之pull解析和httpuitls请求数据
- 通过httpUtils请求网络xml数据进行解析
- Xml 格式数据的生成和解析和 Pull 解析 Xml 格式数据
- 使用HttpUTILS请求XML数据
- ios解析xml的两种方法,NSXMLParser和第三方库GDataXMLNode还有json数据的解析
- XML的pull解析
- xml的pull解析
- 【Lucene】Apache Lucene全文检索引擎架构之入门实战
- 如何用SQL为每一行均产生一个随机数
- viewpagerindector
- Json的JSONArray和JSONObject
- java NIO&IO
- 第三方的httputils请求数据和xml的pull解析
- 【Unity】新的UI系统技巧
- jQuery中map和each的用法(jquery-1.12.1.js)
- 软中断,tasklet和工作队列的区别与联系
- pushdo
- 强大的矩阵奇异值分解(SVD)及其应用
- 设计模式与架构的核心概念乃是抽象
- 用url请求数据并用pull解析
- 神经网络优化算法选择