通过HttpUrlConnection读取数据进行Pull解析
2016-07-27 15:10
447 查看
URL url = new URL(strUrl);
// 创建连接
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.connect();
// 获得响应码
int code = connection.getResponseCode();
if (code == 200) {
InputStream is = connection.getInputStream();
// pull解析
XmlPullParser xmlParser = Xml.newPullParser();
// 设置编码
xmlParser.setInput(is, "UTF-8");
News n = null;
// 获取数据类型
int eventType = xmlParser.getEventType();
while (eventType != XmlResourceParser.END_DOCUMENT) {
// 通过getName判断读到哪个标签,然后通过nextText()获取文本节点值,或通过getAttributeValue(i)获取属性节点值
String tagName = xmlParser.getName();
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
list = new ArrayList<News>();
break;
case XmlPullParser.START_TAG:
// 如果新闻标签的开始我们需要创建News对象
if ("item".equalsIgnoreCase(tagName)) {
n = new News();
} else if ("title".equals(tagName)) {
n.setTitle(xmlParser.nextText());
} else if ("link".equals(tagName)) {
n.setLink(xmlParser.nextText());
} else if ("imgs".equals(tagName)) {
n.setImgs(xmlParser.nextText());
} else if ("copyright".equals(tagName)) {
n.setCopyright(xmlParser.nextText());
} else if ("pubDate".equals(tagName)) {
n.setPubDate(xmlParser.nextText());
}
break;
case XmlPullParser.END_TAG:
if ("item".equals(tagName)) {
list.add(n);
Log.e("info", "++++++" + n);
n = null;
}
break;
case XmlPullParser.END_DOCUMENT:
break;
}
eventType = xmlParser.next();
}
// 创建连接
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.connect();
// 获得响应码
int code = connection.getResponseCode();
if (code == 200) {
InputStream is = connection.getInputStream();
// pull解析
XmlPullParser xmlParser = Xml.newPullParser();
// 设置编码
xmlParser.setInput(is, "UTF-8");
News n = null;
// 获取数据类型
int eventType = xmlParser.getEventType();
while (eventType != XmlResourceParser.END_DOCUMENT) {
// 通过getName判断读到哪个标签,然后通过nextText()获取文本节点值,或通过getAttributeValue(i)获取属性节点值
String tagName = xmlParser.getName();
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
list = new ArrayList<News>();
break;
case XmlPullParser.START_TAG:
// 如果新闻标签的开始我们需要创建News对象
if ("item".equalsIgnoreCase(tagName)) {
n = new News();
} else if ("title".equals(tagName)) {
n.setTitle(xmlParser.nextText());
} else if ("link".equals(tagName)) {
n.setLink(xmlParser.nextText());
} else if ("imgs".equals(tagName)) {
n.setImgs(xmlParser.nextText());
} else if ("copyright".equals(tagName)) {
n.setCopyright(xmlParser.nextText());
} else if ("pubDate".equals(tagName)) {
n.setPubDate(xmlParser.nextText());
}
break;
case XmlPullParser.END_TAG:
if ("item".equals(tagName)) {
list.add(n);
Log.e("info", "++++++" + n);
n = null;
}
break;
case XmlPullParser.END_DOCUMENT:
break;
}
eventType = xmlParser.next();
}
相关文章推荐
- SSL
- Node.js函数传递之基础HTTP请求
- iOS http请求记录一下
- AFHTTPRequestOperationManager 请求后台获得不到参数解决方法
- k-means和bp神经网络要点总结
- servlet错误:HTTP Status 405 - HTTP method GET is not supported by this URL
- Netperf - The fastest TCP connection with Multipath TCP
- android之ConnectivityManager简介,网络连接状态
- Volley框架实现Android网络请求笔记
- 转发别处的博客关于TCP/IP协议的拥塞控制机制,讲的很好分享下
- HTTP和HTTPS的概念和区别
- 【下载https协议需要的cer证书】
- HTTP_CLIENT_IP、HTTP_X_FORWARDED_FOR、REMOTE_ADDR
- Netperf - 网络性能测量工具
- 卷积神经网络CNN入门——代码
- iOS应用架构谈 网络层设计方案
- HttpPost
- TCP、UDP、RTP(RTCP)异同与区别
- Xutils3.+框架的基本使用操作
- 网络带宽方案调研