网络获取信息Ion---解析xml和assets获取信息pull解析xml
2016-05-13 20:06
543 查看
两个包androidasync-2.1.6.jar-------ion-2.1.6.jar
配置--android.permission.INTERNET
Mainactivity
获取网络信息
String ulr = "http://www.oschina.net/action/api/news_list?catalog=1&pageIndex="+ pageIndex + "&pageSize=20";Ion.with(getApplicationContext()).load(ulr).asString()
.setCallback(new FutureCallback<String>() {
//result就是解析
@Override
public void onCompleted(Exception e, String
result) {
// TODO Auto-generated method stub
if (e != null) {
return;
}
pull(result);
allList.addAll(nList);
adapter.addrest(allList);
}
});
pull解析xml
private void pull_(String result) {// TODO Auto-generated method stub
News infos=null;
try {
//获得xml解析器
XmlPullParser newPullParser = Xml.newPullParser();
//获得文件
ByteArrayInputStream arrayInputStream=new ByteArrayInputStream(result.getBytes());
//设置流
newPullParser.setInput(arrayInputStream,"UTF-8");
eventType = newPullParser.getEventType();
while(eventType!=XmlPullParser.END_DOCUMENT){
String name = newPullParser.getName();
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
list_news = new ArrayList<News>();
break;
case XmlPullParser.START_TAG:
if("news".equals(name)){
infos = new News();
}
if(infos!=null){
if("id".equals(name)){
infos.id = newPullParser.nextText();
}else if("title".equals(name)){
String titles = newPullParser.nextText();
infos.title=titles;
}else if ("body".equals(name)) {
String body = newPullParser.nextText();
infos.body =body;
} else if ("commentCount".equals(name)) {
String commentCount = newPullParser.nextText();
infos.commentCount =commentCount;
} else if ("author".equals(name)) {
String author = newPullParser.nextText();
infos.author =author;
} else if ("authorid".equals(name)) {
String authorid = newPullParser.nextText();
infos.authorid =authorid;
} else if ("pubDate".equals(name)) {
String pubDate = newPullParser.nextText();
infos.pubDate =pubDate;
} else if("newstype".equals(name)){
if("type".equals(name)){
String type = newPullParser.nextText();
infos.newstype.type =type;
}else if("authoruid2".equals(name)){
String authoruid2 = newPullParser.nextText();
infos.newstype.authoruid2 =authoruid2;
}
}
}
break;
case XmlPullParser.END_TAG:
if("news".equals(name)){
list_news.add(infos);
}
break;
case XmlPullParser.END_DOCUMENT:
break;
default:
break;
}
eventType = newPullParser.next();
}} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//从assets中获取信息pull解析xml
public class MainActivity extends Activity {private static final String TAG = "MainActivity";
private int eventType;
private XmlPullParser newpullParser;
private List<Javabean> list;
private Javabean javabean;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获得xml文件解析器
newpullParser = Xml.newPullParser();
//获得文件
try {
InputStream inputStream = getAssets().open("data.xml");
//将文件放到解析器
newpullParser.setInput(inputStream, "utf-8");
eventType = newpullParser.getEventType();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//解析xmL内容
List<Javabean> pullxml = pullxml();
for(Javabean javabean:pullxml){
Log.i(TAG,javabean.toString());
}
}
private List<Javabean> pullxml() {
// TODO Auto-generated method stub
while(eventType!=XmlPullParser.END_DOCUMENT){
String name = newpullParser.getName();
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.START_TAG:
if("persons".equals(name)){
list = new ArrayList<Javabean>();
}else if("person".equals(name)){
javabean = new Javabean();
String id = newpullParser.getAttributeValue(0);
javabean.setId(id);
}else if("name".equals(name)){
try {
String names = newpullParser.nextText();
javabean.setName(names);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else if("age".equals(name)){
try {
String ages = newpullParser.nextText();
javabean.setAge(ages);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
break;
case XmlPullParser.END_TAG:
if("person".equals(name)){
list.add(javabean);
javabean=null;
}else if("persons".equals(name)){
return list;
}
break;
default:
break;
}
try {
eventType = newpullParser.next();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return list;
}
相关文章推荐
- 计算机网络中的MAC帧
- httpclient网络请求数据
- httpUrlConnection请求数据
- 快速理解VirtualBox的四种网络连接方式
- httpclient_新闻(School)
- JavaWeb学习总结(四)_http协议
- java网络编程(URL类)
- OkHttp框架缓存的缺陷
- Failed to connect sshd on "10.6.6.229:99"ProxyHTTP:java.io.IOException:proxy error:Service Unavailab
- 常见HTTP状态(304,200等)
- 用fiddler模拟网络请求超时
- 概率图模型(一):贝叶斯网络
- iOS网络资源汇总之UI
- HTTP协议之chunk编码(分块传输编码)
- android获取网络图片
- 使用WireShark抓包分析Android网络请求时间(二)
- 整理:Linux网络编程之sockaddr与sockaddr_in,sockaddr_un结构体详细讲解
- 配置Tomcat使用https协议(配置SSL协议)
- linux tomcat配置https
- HttpServletRequest.getHeader() 详细说明