Получить и проанализировать страницу JSP на Android

Я пытаюсь создать приложение для Android, чтобы отображать школьную повестку дня.

Сначала у меня все хорошо с loopj. Я могу подключиться к своей школьной учетной записи и получать страницы. НО, часть повестки дня - это страница JSP, и я вхожу в метод "onFailure".

Я использую библиотеку loopj asynchttp. Думаю, он просто не обрабатывает JSP.

У вас есть идеи, как его получить? Как только я его получу, цель состоит в том, чтобы проанализировать его с помощью JSOUP и извлечь только те данные, которые я хочу.

Вот мой фрагмент loopj:

// try to get the planning
App_Web.client.get("the_url ...", null, new TextHttpResponseHandler() {

    @Override
    public void onFailure(int i, Header[] headers, String s, Throwable throwable) {
        System.out.println("FAILED");
    }

    @Override
    public void onSuccess(int i, Header[] headers, String s) {

        System.out.print("OK");

    }
});

Мне нужно подключиться, прежде чем я доберусь до страницы.

Поэтому мне нужно использовать сеанс loopj, если вы скажете мне использовать другую библиотеку или использовать библиотеку, которая может обрабатывать сеанс.

Пожалуйста, скажите мне, если вы что-то не понимаете, я могу помочь вам понять лучше.

Ваше здоровье,

Максим


person maxime1992    schedule 15.09.2014    source источник
comment
Любая помощь будет действительно полезной;)   -  person maxime1992    schedule 15.09.2014


Ответы (1)


JSP — это аббревиатура от Java Server Pages. Это технология Java для исправления динамических веб-страниц. Тот факт, что вы пытаетесь проанализировать страницу, созданную с помощью jsp, не должен вас беспокоить, поскольку это актуально только на сервере. Вы как клиент, будь то веб-браузер или парсер html, такой как jsoup или loopj, получаете чистый html. На вашей стороне нет кода java/jsp, так как весь jsp был скомпилирован и запущен, и в конце концов был получен желаемый html.

Теперь, когда мы очистили это, вернемся к вашему приложению. Вы можете проверить причину вызова onFailure, напечатав трассировку стека полученного аргумента Throwable. Проверьте документы . Как видите, для класса Throwable вы можете вызвать printStackTrace(), чтобы прочитать записанные шаги, которые привели к проблеме. Не видя трассировки стека, я не могу сильно помочь, но, скорее всего, это проблема timeout или проблема header. Проверьте стек, и я постараюсь помочь еще немного.

person Alkis Kalogeris    schedule 15.09.2014
comment
Спасибо за ваш ответ. Я знаю, что jsp актуален только на сервере, но я боролся с этой сверхсложной страницей. Фактически, большая часть данных была загружена в Ajax, когда документ был готов. (Более 10 ajax-запросов на сборку всей страницы, просто ужас). Поэтому лучшее, что я мог сделать, это использовать phantomJS и casperJS (мощный, кстати!), чтобы получить страницу, дождаться, пока страница получит все данные, удалить ее и отправить файл json на сервер, который мое приложение вызывает позже. Спасибо еще раз :) ! - person maxime1992; 19.09.2014
comment
Без проблем. Я рад, что ты нашел способ выполнить свою задачу. Пожалуйста, опубликуйте свое решение в качестве ответа и примите его. - person Alkis Kalogeris; 01.12.2014