1

去年我做了一个 Android 应用程序,它取消了我在比利时的火车公司的信息(应用程序是 BETrains:http ://www.cyrket.com/p/android/tof.cv.mpp/ )

这个应用程序真的很酷,它允许用户与火车上的其他人交谈(一个消息服务器由我运行)并且对话也在 Twitter 上:http: //twitter.com/betrains

比利时的每个人都喜欢它。该公司试图避免我们使用他们的数据,让一些用户的网站关闭,但他们是一些攻击公司的律师,最后我们没有更多的问题,网站是开放的:http: //blog.tuinslak.org/2010 /07/irail 回来了

所以,从法律上讲,我的申请(目前)是完全正确和合法的,但我没有得到火车公司的帮助。

所以我的问题是对获取数据有一点帮助。我现在是一个 android/java 初学者,花了几个星期来尝试找到一个解决方案,但也许喜欢的人会在几分钟内找到它。

所以问题是下一个。您可以查看以下 URL,您会在 URL 中找到 2 个城市名称:Mons 和 Tournai,以及有关日期和时间的信息。那是一年有效的旧方法:

http://hari.b-holding.be/Hafas/bin/query.exe/en?&REQ0JourneyStopsS0A=1&REQ0JourneyStopsS0G=MONS%20[b]&REQ0JourneyStopsZ0A=1&REQ0JourneyStopsZ0G=TOURNAI%20[b]&REQ0JourneyDate=27.010.10:10&REQ0JourneyTime= 030&Timesel=出发&ViaName=&ViaMode=NEE&DateMode=ANDERS&PLANNER=TRUE&start=1&queryPageDisplayed=yes

但是现在,该 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...

您对如何改进代码有任何想法吗?

由于该软件是免费的,我无法向贝宝汇款,但整个国家都会非常感谢可能提供帮助的人!

非常感谢。

4

1 回答 1

0

与其尝试自动单击 JavaScript 按钮,不如尝试监控发送的请求,然后在您的应用程序中复制它。有各种 firefox 扩展可以帮助您做到这一点,例如TamperDataFirebugLiveHttp

于 2011-04-11T23:47:26.003 回答