Android / Java: симуляция клика на этой веб-странице - PullRequest
1 голос
/ 14 июля 2010

В прошлом году я сделал приложение для Android, которое собирало информацию о моей железнодорожной компании в Бельгии (приложение BETrains: http://www.cyrket.com/p/android/tof.cv.mpp/)

Это приложение было действительно классным и позволяло пользователям общаться с другими людьми в поезде (я управляю сервером сообщений), а разговоры были также в Твиттере: http://twitter.com/betrains

Всем в Бельгии это понравилось. Компания пыталась не допустить, чтобы мы использовали их данные, закрыли сайты некоторых пользователей, но это были некоторые юристы, которые атакуют компанию, и, наконец, у нас больше нет проблем, и сайты открыты: http://blog.tuinslak.org/2010/07/irail-is-back

Итак, с юридической точки зрения мое заявление (на данный момент) совершенно правильно и законно, но я не получаю помощи от железнодорожной компании.

Так что мой вопрос - небольшая помощь в получении данных. Теперь я новичок в Android / Java и потратил несколько недель, чтобы попытаться найти решение, но, возможно, такие люди придут к нему за несколько минут.

Так что проблема в следующем. Вы можете взглянуть на следующий URL, и вы найдете 2 названия городов в URL: Монс и Турне, а также информацию о дате и времени. Это был старый метод, который работал один год:

http://hari.b -holding.be / Hafas / бен / query.exe / ан? & REQ0JourneyStopsS0A = 1 & REQ0JourneyStopsS0G = MONS% 20 [Ь] & REQ0JourneyStopsZ0A = 1 & REQ0JourneyStopsZ0G = TOURNAI% 20 ​​[Ь] & REQ0JourneyDate = 27.010.10 & REQ0JourneyTime = 19: 030 & Timesel = Вылет & ViaName = & ViaMode = NEE & DateMode = ANDERS & PLANNER = TRUE и начать = 1 & queryPageDisplayed = да

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

Так что мой код больше не будет работать, мне нужно программно нажать на эту кнопку, чтобы перейти на правильную веб-страницу.

Есть ли у вас идеи о том, как смоделировать нажатие на эту кнопку? На данный момент мой код является классическим кодом с URL-адресом, расположенным в нескольких строках вверху. Я предположил, что URL даст мне страницу результатов. Так было до прошлой недели.

DefaultHttpClient httpclient = new DefaultHttpClient();
        HttpGet get = new HttpGet(mon_url);
        HttpResponse response;
            try {
                  response = httpclient.execute(get);
                  HttpEntity entity = response.getEntity();        
                  BufferedReader buf = new BufferedReader(new InputStreamReader(entity.getContent()));
                 etc...

Есть ли у вас идеи, как улучшить код?

Поскольку программное обеспечение бесплатное, я не могу отправить PayPal деньги, но вся страна была бы очень благодарна человеку, который может помочь!

Большое спасибо.

1 Ответ

0 голосов
/ 12 апреля 2011

Вместо того, чтобы пытаться автоматизировать нажатие кнопки JavaScript, попробуйте отслеживать, какой запрос отправлен, а затем скопируйте его в свое приложение. В этом вам помогут различные расширения Firefox, такие как TamperData , Firebug и LiveHttp .

...