android连接本地计算机tomcat服务器,读取固定目录下的xml件如何来实现???大神请指教。我的代码哪里有问题,或者给段例子也行。
public static List<Student> getStudents() throws Exception{
String path = "http://10.0.2.2:8080/pc/xml/student.xml";
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setReadTimeout(5*1000);
conn.setRequestMethod("GET");
InputStream inStream = conn.getInputStream();
return parseXML(inStream);
}
private static List<Student> parseXML(InputStream inStream) throws Exception{
List<Student> students = null;
Student student = null;
XmlPullParser parser = Xml.newPullParser();
parser.setInput(inStream, "UTF-8");
int eventType = parser.getEventType();//产生第一个事件
while(eventType!=XmlPullParser.END_DOCUMENT){//只要不是文档结束事件
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
students = new ArrayList<Student>();
break;
case XmlPullParser.START_TAG:
String name = parser.getName();//获取解析器当前指向的元素的名称
if("student".equals(name)){
int id = new Integer(parser.getAttributeValue(0));
student = new Student();
student.setId(id);
}
if("sName".equals(name)){
String sName = parser.nextText();
student.setsName(sName);
}
if("sAge".equals(name)){
String sAge = parser.nextText();
student.setsAge(sAge);
}
if("sSex".equals(name)){
String sSex = parser.nextText();
student.setsSex(sSex);
}
break;
case XmlPullParser.END_TAG:
if("student".equals(parser.getName())){
students.add(student);
student = null;
}
break;
}
eventType = parser.next();
}
return students;
}
public static List<Student> getStudents() throws Exception{
String path = "http://10.0.2.2:8080/pc/xml/student.xml";
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setReadTimeout(5*1000);
conn.setRequestMethod("GET");
InputStream inStream = conn.getInputStream();
return parseXML(inStream);
}
private static List<Student> parseXML(InputStream inStream) throws Exception{
List<Student> students = null;
Student student = null;
XmlPullParser parser = Xml.newPullParser();
parser.setInput(inStream, "UTF-8");
int eventType = parser.getEventType();//产生第一个事件
while(eventType!=XmlPullParser.END_DOCUMENT){//只要不是文档结束事件
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
students = new ArrayList<Student>();
break;
case XmlPullParser.START_TAG:
String name = parser.getName();//获取解析器当前指向的元素的名称
if("student".equals(name)){
int id = new Integer(parser.getAttributeValue(0));
student = new Student();
student.setId(id);
}
if("sName".equals(name)){
String sName = parser.nextText();
student.setsName(sName);
}
if("sAge".equals(name)){
String sAge = parser.nextText();
student.setsAge(sAge);
}
if("sSex".equals(name)){
String sSex = parser.nextText();
student.setsSex(sSex);
}
break;
case XmlPullParser.END_TAG:
if("student".equals(parser.getName())){
students.add(student);
student = null;
}
break;
}
eventType = parser.next();
}
return students;
}
配置文件少加了 <uses-permission android:name="android.permission.INTERNET" />