您的位置:首页 > 理论基础 > 计算机网络

网络请求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;
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: