XML from URL XmlPullParser

216
11 мая 2018, 15:21

Просьба не ругать сильно, с XML не работал, только учусь. Пока иду от простого XmlPullParser что бы понять принцип работы. Собственно сам вопроос: Разбираю документ с сайта, из него нужно выдернуть несколько полей и добавить к ключу запрос хэдер. есль файл расположен локально в проекте, вопросов нету , я разобрался. Но вот пытаюсь все то же самое выдернуть из сети и не получается. + не совсем до конца понимаю каки правильно приложить хэдер. ( через браузер делаю, ответ вижу) Собственно сам код

listView = findViewById(R.id.listView1);
    new GetWeatherDataTask(this, URL_CONNECT).execute();

и бэкграунд такой:

public class GetWeatherDataTask extends AsyncTask<String[], Void, List<Employee>> {
    private MainActivity activity;
    private ProgressDialog pDialog;
    public GetWeatherDataTask(MainActivity activity, String url) {
        this.activity = activity;
    }
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(activity);
        pDialog.setTitle("Get Weather Information from XML");
        pDialog.setMessage("Loading...");
        pDialog.show();
    }
    @Override
    protected List<Employee> doInBackground(String[]... params) {
        try {
            URL url=new URL("https://rasp.rw.by/api/ru/index/route/?from=Иваново&to=Москва");
            HttpURLConnection connection=(HttpURLConnection)url.openConnection();
            connection.setDoInput(true);
            connection.setRequestProperty("X-AppId", "97377f7b702d7198e47a2bf12eec744d5");
            connection.connect();
            InputStream is = connection.getInputStream();
            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
            factory.setNamespaceAware(true);
            XmlPullParser  parser = factory.newPullParser();
            parser.setInput(is, "UTF-8");
            parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
            int eventType = parser.getEventType();
            while (eventType != XmlPullParser.END_DOCUMENT) {
                String tagname = parser.getName();
                //index рабочий тег
                if (eventType == XmlPullParser.START_TAG) {
                    if (tagname.equalsIgnoreCase("index")) {
                        //на теге индекс начинаем выдергивать
                        employee = new Employee();
                        employees.add(employee);
                    }

                }else
                if (eventType == XmlPullParser.TEXT) {
                    text = parser.getText();
                }else
                if (eventType ==  XmlPullParser.END_TAG) {
                    if (tagname.equalsIgnoreCase(TITLE)) {
                        employee.setId(text);
                    } else
                    if (tagname.equalsIgnoreCase(TRAIN_NUMBER)) {
                        employee.setTrain_number(text);
                    } else
                    if (tagname.equalsIgnoreCase(TRAIN_DAYS)) {
                        employee.setTrain_days(text);
                    } else
                    if (tagname.equalsIgnoreCase(MIN_PRICE)) {
                        employee.setMin_price(text);
                    } else
                    if (tagname.equalsIgnoreCase(FROM_TIME)) {
                        employee.setFrom_time_formatted(text);
                    } else
                    if (tagname.equalsIgnoreCase(TO_TIME)) {
                        employee.setTo_time_formatted(text);
                    } else
                    if (tagname.equalsIgnoreCase(TRAIN_STOPS)) {
                        employee.setName(text);
                    } else
                    if (tagname.equalsIgnoreCase(DURATION)) {
                        employee.setSalary(text);
                    }
                }
                eventType = parser.next();
            }
        } catch (XmlPullParserException | IOException e) {e.printStackTrace();
            Log.e("AsyncTask", "GOOD");
            Log.e("AsyncTask", String.valueOf(employees));
        } catch (Exception e) {
            e.printStackTrace();
            Log.e("AsyncTask", "exception");
            return null;
        }
        return employees;
    }


    @Override
    protected void onPostExecute(List<Employee> result) {
        pDialog.dismiss();
        ArrayAdapter<Employee> adapter =new ArrayAdapter<Employee>
                (getApplicationContext(),android.R.layout.simple_list_item_1, employees);
        listView.setAdapter(adapter);
    }

}

собственно в логи выводится Log.e("AsyncTask", "GOOD"); и []

[_body:protected] =>

[_directory:protected] => Api

05-10 16:04:01.711 24921-25023/com.roman.xml E/AsyncTask: [_controller:protected] => Index 05-10 16:04:01.711 24921-25023/com.roman.xml E/AsyncTask: [_action:protected] => route 05-10 16:04:01.711 24921-25023/com.roman.xml E/AsyncTask: [_uri:protected] => api/ru/index/route 05-10 16:04:01.711 24921-25023/com.roman.xml E/AsyncTask: [_external:protected] => 05-10 16:04:01.711 24921-25023/com.roman.xml E/AsyncTask: [_params:protected] => Array

(

05-10 16:04:01.711 24921-25023/com.roman.xml E/AsyncTask: [lang] => ru 05-10 16:04:01.711 24921-25023/com.roman.xml E/AsyncTask: [lang_sensitive] => 1 05-10 16:04:01.711 24921-25023/com.roman.xml E/AsyncTask: [domain] => api 05-10 16:04:01.711 24921-25023/com.roman.xml E/AsyncTask: [debug] => 05-10 16:04:01.711 24921-25023/com.roman.xml E/AsyncTask: ) [10] => Array 05-10 16:04:01.720 24921-25023/com.roman.xml E/AsyncTask: ( 05-10 16:04:01.721 24921-25023/com.roman.xml E/AsyncTask: [file] => /home/rasprwby/rasp.rw.by/www/index.php 05-10 16:04:01.721 24921-25023/com.roman.xml E/AsyncTask: [line] => 118 05-10 16:04:01.721 24921-25023/com.roman.xml E/AsyncTask: [function] => execute 05-10 16:04:01.721 24921-25023/com.roman.xml E/AsyncTask: [class] => Kohana_Request 05-10 16:04:01.721 24921-25023/com.roman.xml E/AsyncTask: [type] => -> 05-10 16:04:01.721 24921-25023/com.roman.xml E/AsyncTask: [args] => Array

READ ALSO
Проблемы с запуском приложения

Проблемы с запуском приложения

При запуске приложения в студии на устройстве появляется: Waiting For Debugger-сообщение, хотя режим отладки в студии не включал, а делал обычный запускКак...

236
сохранить файл после его изменения в textarea

сохранить файл после его изменения в textarea

Как изменить пользовательский файл после того как его изменил сам пользователь в textarea? Вот код сервлета, где выводится файл пользователя...

184
Перевод из секунд в часы:минуты

Перевод из секунд в часы:минуты

Есть переменная time, в ней хранятся секунды, которые нужно перевести в формат HH:mmПроблема в том, что при использовании SimpleDateFormat или ручным...

195
Как передать переменную на страницу jsp

Как передать переменную на страницу jsp

Такой вопрос, передаю переменную на страницу выбора режима просмотра БД таким образом: <li><a href="modeTmpSelectjsp?pages=${pages}">Технологічні маршрути...

157