网络请求xml数据,并用pull方式解析
2016-06-28 10:54
471 查看
/** * httpUrlConnect请求数据 */ private void getData() { try { //得到URL对象,并设置访问地址 URL url=new URL("http://www.baidu.com/"); //得到HttpURLConnection对象 HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); //设置连接超时 httpURLConnection.setConnectTimeout(5000); //设置请求方式 get/post httpURLConnection.setRequestMethod("POST"); //读取超时 httpURLConnection.setReadTimeout(5000); //正式联网 httpURLConnection.connect(); //获得状态码 int code =httpURLConnection.getResponseCode(); if(code==200){ System.out.println("联网请求成功"); //获取包含数据的输入流 InputStream inputStream = httpURLConnection.getInputStream(); BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); //记录每一行读取的数据 String data; //拼接字符串 StringBuffer stringBuffer=new StringBuffer(); while ((data=bufferedReader.readLine())!=null) { stringBuffer.append(data); } /* System.out.println(stringBuffer.toString()); textView.setText(stringBuffer.toString());*/ Message msg = Message.obtain(); msg.obj=stringBuffer.toString(); handler.sendMessage(msg); }else{ System.out.println("联网失败"); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } <pre name="code" class="java">private List<News> xmlParse(InputStream is) { List<News> newslist = null; News news = null; XmlPullParser parser = Xml.newPullParser(); try { parser.setInput(is, "UTF-8"); int eventType = parser.getEventType();// 产生第一个事件 while (eventType != XmlPullParser.END_DOCUMENT) {// 只要不是文档结束事件 switch (eventType) { case XmlPullParser.START_DOCUMENT: newslist = new ArrayList<News>(); break; case XmlPullParser.START_TAG: String name = parser.getName();// 获取解析器当前指向的元素的名称 if ("news".equals(name)) { news = new News(); } if (news != null) { if ("title".equals(name)) { news.setTitle(parser.nextText());// 获取解析器当前指向元素的下一个文本节点的值 } if ("body".equals(name)) { news.setBody(parser.nextText()); } } break; case XmlPullParser.END_TAG: if ("news".equals(parser.getName())) { newslist.add(news); news = null; } break; } eventType = parser.next(); } } catch (XmlPullParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return newslist; }
相关文章推荐
- C#使用sharppcap实现网络抓包
- 记《浪潮之巅》-第一版-12.短暂的春秋-与机会失之交臂的公司之二Novell公司
- 关于移动网络
- modbus RTU/TCP,网络回复
- 网络层详解2
- (2)http服务器
- Android 网络HTML查看器
- (1)IP地址 : 网络号 + 主机号
- (转)常见的HTTP状态码(HTTP Status Code)说明
- iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
- 网络整理
- Xutils的网络请求httputils
- caffe基础(8):draw_net.py绘制网络结构
- Learning RNN from scratch (RNN神经网络参数推导)
- IMS网络中手机是如何接入通信网络
- C# 的tcp Socket设置自定义超时时间
- nginx 之 Module ngx_http_proxy_module 深入研究
- HTTP请求
- nodejs——网络编程模块
- node网络编程基础