如何从Java小程序中提取数据(在浏览器中)

时间:2011-08-04 21:34:08

标签: applet sniffing

嗯,好吧,我们走了......

我们在常规浏览器上运行java applet(ff4 +或ie5 +)。

我无法访问java代码/ servlet。甚至也不是服务器。

我需要从这个小程序发送/检索数据。这意味着我必须通过单击按钮并填写表单的文本框来模拟用户,并返回数据(在服务器响应之后),它将位于文本框中。

所以可以使用的技术包括C,VB,.NET(主要是webbrowser对象),PHP(可用),JavaScript,使用Fiddler嗅探浏览器/服务器通信。

我们真的需要这个。但如果那是不可能的,那么我们也可能必须知道。 该数据归我公司所有,因此不会产生任何版权。

此外,我对非传统解决方案持开放态度,例如将html保存为图像,然后使用某些OCR软件检索数据......

因此,任何建议或指示方向都将不胜感激。

THX

Paulo Bueno。

5 个答案:

答案 0 :(得分:4)

必须模仿用户浏览会遇到问题,如果可行,我会建议另一条路线。这些是我要采取的步骤:

  1. 从我的缓存中抓取applet类或jar(访问页面/ applet的任何人都可以这样做)。
  2. 将代码反编译为Java源代码(使用jad或其他首选工具)
  3. 查看applet与服务进行通信的过程
  4. 编写一个应用程序,将我的数据提交给applet连接的服务,并像applet一样处理任何响应。

答案 1 :(得分:0)

您可以使用JRE中附带的“appletviewer”在没有浏览器的情况下运行任何applet。这样就可以通过http://code.google.com/p/windowlicker/读取和发送虚假输入来控制SWING GUI,但这是不可行的。

但是在具有访问代码的常规浏览器环境中,您宁愿这样做:

在对象标记中使用“scriptable”和“mayscript”属性/元素。标准浏览器JRE包含一个“plugin.jar”,其中包含完成此项工作所需的功能。这个接口让Java-Applet代码与Javascript通信相反,从你可以做任何你想做的事情(即ajax请求)

这个主题相当复杂,请查看谷歌告诉我们的内容:

http://www.htmlcodetutorial.com/applets/_APPLET_MAYSCRIPT.html http://www.raditha.com/java/javascript.php

使用此界面真的很痛苦,所以我建议在你的applet中实现HTTPRequests,告诉PHP服务器你想告诉它什么。

的问候, 迈克尔

答案 2 :(得分:0)

  

我无法访问java代码/ servlet。甚至连   服务器

嗯......这是非常不寻常的情况。如果您有applet,当然,您应该有权访问其src文件来修改:)

  

我需要从这个小程序发送/检索数据。这意味着我必须   通过单击按钮并填写表单来模拟用户   文本框并返回数据(在服务器响应之后)   在文本框内。

无论如何,要“模拟”用户你可以使用Robot对象,但它仍然会要求你修改applet代码以使其支持一些额外的功能......我记得,JS等无法控制来自外部命令的Java Applet,除非applet确实包含JS支持的网页交互功能......但是你仍然说你没有任何访问applet src所以没有信息applet是否支持netscape.javascript以及它是如何支持它所以它还不太清楚......所以我必须问你有这个小程序的任何文档吗?

围绕问题文本并回到问题标题本身

  

“如何从Java小程序中提取数据(在浏览器中)”

我可以这么说 要从Java Applet中提取数据 ,您可以使用支持Java Applet和JS交互exampledocs的netscape lib。在这种情况下,这是最佳方式

祝你好运

答案 3 :(得分:0)

除非它被混淆,否则可能不会很难对applet进行反编译/更改/编译。 我用JAD。 https://stackoverflow.com/questions/31353/is-jad-the-best-java-decompiler

答案 4 :(得分:0)

如果您必须通过与Java applet交互来获取数据而不是对其进行逆向工程,请查看FEST (Fixtures for Easy Software Testing)。 FEST旨在通过模拟用户交互来测试Java Swing GUI,但您也可以轻松地使用它来自动化您的applet。

查看testing applets上的文档页面以开始使用。