谷歌发布说去除了HttpClient方法今天用HTTPUrlConnection写了个解析xml文件的
程序然后出错了求各位大神们帮忙
这是我的代码
private void init() {
listView= (ListView) findViewById(R.id.list_text);
new Thread(new Runnable() {
@Override
public void run() {
getNewsInternet();
}
}).start();
}
//返回新闻信息
private List getNewsInternet(){
// //url:http://10.0.2.2:8080/NetEaseServer/new.xml
try {
URL url =new URL("http://10.0.2.2:8080/NetEaseServer/new.xml");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(1000);
conn.setReadTimeout(500);
conn.connect();
int responseCode = conn.getResponseCode();
if(responseCode==200){
InputStream is = conn.getInputStream();
List listXml =getXML(is);
Log.i(TAG,listXml.get(0).toString());
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private List<NewInfo> getXML(InputStream is) throws XmlPullParserException, IOException {
XmlPullParser paser = Xml.newPullParser();//xml pull解析器
paser.setInput(is,"UTF-8");//设置流格式
int evenType = paser.getEventType();
Log.i(TAG,"文件的事件"+evenType);
List<NewInfo> newInfoList=null;
NewInfo newInfo= null;
while (evenType!=XmlPullParser.END_DOCUMENT){//如果没到结束就一直循环
String tagName=paser.getName();//获得节点名称
Log.i(TAG,"节点名称"+tagName);
switch (evenType){
case XmlPullParser.START_TAG: //<news>
if("news".equals(tagName)){
newInfoList= new ArrayList<NewInfo>() ;
}else if("new".equals(tagName)){
newInfo = new NewInfo();
}else if("title".equals(tagName)){
newInfo.setTitle(paser.nextText());//讲title的内容放进newinfo对象中
Log.i(TAG,"文件的标题"+paser.nextText());
}else if("detail".equals(tagName)){
newInfo.setDetail(paser.nextText());//讲detaile的内容放进去
}else if("comment".equals(tagName)){
newInfo.setComment(Integer.parseInt(paser.nextText()));//《commet》
}else if("image".equals(tagName)){
newInfo.setImageUrl(paser.nextText());//《图片》
}
break;
case XmlPullParser.END_TAG:
if("news".equals(tagName)){
newInfoList.add(newInfo);
}
break;
default:
break;
}
evenType=paser.next();//取下一个时间的类型
}
return newInfoList;
}
Logcat的信息
-12865/? I/MainActivity﹕ 文件的事件0
10-17 12:56:10.387 12852-12865/? I/MainActivity﹕ 节点名称null
10-17 12:56:10.427 12852-12865/? I/MainActivity﹕ 节点名称news
10-17 12:56:10.457 12852-12865/? I/MainActivity﹕ 节点名称null
10-17 12:56:10.467 12852-12865/? I/MainActivity﹕ 节点名称new
10-17 12:56:10.497 12852-12865/? I/MainActivity﹕ 节点名称null
10-17 12:56:10.497 12852-12865/? I/MainActivity﹕ 节点名称title
10-17 12:56:10.577 12852-12865/? W/System.err﹕ org.xmlpull.v1.XmlPullParserException: precondition: START_TAG (position:END_TAG @4:34 in java.io.InputStreamReader@4173a850)
10-17 12:56:10.607 12852-12865/? W/System.err﹕ at org.kxml2.io.KXmlParser.nextText(KXmlParser.java:2053)
10-17 12:56:10.637 12852-12865/? W/System.err﹕ at activity.cn.com.wangyinews3.MainActivity.getXML(MainActivity.java:100)
10-17 12:56:10.637 12852-12865/? W/System.err﹕ at activity.cn.com.wangyinews3.MainActivity.getNewsInternet(MainActivity.java:58)
10-17 12:56:10.668 12852-12865/? W/System.err﹕ at activity.cn.com.wangyinews3.MainActivity.access$000(MainActivity.java:26)
10-17 12:56:10.668 12852-12865/? W/System.err﹕ at activity.cn.com.wangyinews3.MainActivity$1.run(MainActivity.java:41)
10-17 12:56:10.697 12852-12865/? W/System.err﹕ at java.lang.Thread.run(Thread.java:841)
为何会这样的 该怎么解决呢?