Попытка получить XML из URL-адреса

Раньше я использовал файл XML из папки с ресурсами. Приложение может прочитать это очень хорошо. Следующим шагом я хочу поместить этот XML на веб-сервер. Но на данном этапе приложение не может распознать какие-либо данные. Это смутило меня пару дней.

AssetManager asset = getAssets();
InputStream input = asset.open("student.xml");
List<Student> list = ParserByPULL.getStudents(input); 

Все работает нормально, если файл в папке assets. Затем я попытался получить его по URL-адресу.

String path = "http://fthgyj.tup632.cnaaa11.com/student.xml";
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");
InputStream input = url.openConnection().getInputStream(); 
List<Student> list = ParserByPULL.getStudents(input);

Я добавил разрешение на подключение к ИНТЕРНЕТУ в файле манифеста. Кто-нибудь имеет представление об этом?


person user3421634    schedule 02.04.2014    source источник
comment
Так что же тогда не так? Вы получаете исключение или что, просто пустой ответ?   -  person vilpe89    schedule 02.04.2014
comment
Возможно, исключение NetworkOnMainThreadException?   -  person laalto    schedule 02.04.2014
comment
сообщите нам точные симптомы вашей проблемы. Заставлять нас гадать нехорошо, да и ответа не получишь.   -  person kiruwka    schedule 02.04.2014
comment
Мне жаль. На экране ничего не отображается. Но приложение может работать как обычно (в логарифме ошибок нет).   -  person user3421634    schedule 02.04.2014


Ответы (2)


Попробуйте это, чтобы извлечь и проанализировать файл XML из URL-адреса,

http://www.javacodegeeks.com/2010/11/boost-android-xml-parsing-xml-pull.html

person sais    schedule 02.04.2014
comment
Спасибо, буду читать строчку за строчкой. - person user3421634; 02.04.2014
comment
Вы нашли это полезным? - person sais; 08.04.2014

Я думаю, тебе нужно позвонить

conn.connect();
InputStream input = conn.getInputStream();

А затем проверьте, получили ли вы xml:

BufferedReader reader = new BufferedReader(new InputStreamReader(input));
StringBuilder builder = new StringBuilder();
String line;

while ((line = reader.readLine()) != null) {
    builder.append(line);
}
reader.close();
Log.d("tag", "output: " + builder.toString());
person vilpe89    schedule 02.04.2014
comment
Я пробовал, но все еще не работает. В любом случае, большое спасибо. - person user3421634; 02.04.2014
comment
А вы уверены, что ничего не получаете из входного потока? Проверьте мой обновленный ответ - person vilpe89; 02.04.2014