4

好吧,好吧,我们走吧……

我们有一个在常规浏览器(ff4+ 或 ie5+)上运行的 java 小程序。

我无权访问 java 代码/servlet。甚至对服务器也不行。

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

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

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

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

那么,任何建议或指示将不胜感激。

谢谢

保罗·布埃诺。

4

5 回答 5

4

必须模拟用户浏览是有问题的,如果可行的话,我会建议一条替代路线。这些是我将采取的步骤:

  1. 从我的缓存中获取小程序类或 jar(访问页面/小程序的任何人都可以这样做)。
  2. 将代码反编译成 Java 源代码(使用 jad 或其他首选工具)
  3. 查看小程序与服务通信的过程
  4. 编写一个应用程序,将我的数据提交给小程序连接的服务,并像小程序一样处理任何响应。
于 2011-08-12T15:44:03.520 回答
0

如果您必须通过与 java 小程序交互而不是对其进行逆向工程来获取数据,请查看FEST(用于简易软件测试的固定装置)。FEST 旨在通过模拟用户交互来测试 Java Swing GUI,但您也可以轻松地使用它来自动化您的小程序。

查看有关测试小程序的文档页面以开始使用。

于 2011-08-15T11:43:36.157 回答
0

You can run any applet without a browser using the "appletviewer" that is shipped in a JRE. This way it is possible but not practicable to read and send fake input with http://code.google.com/p/windowlicker/ to control the SWING GUI.

But within a regular browser environment with access to the code you would rather do this:

using the "scriptable" and "mayscript" attributes/elements in your object tag. standard browser JREs include a "plugin.jar" that contains the needed function to do this job. This interface lets Java-Applet code communicate vice versa to Javascript, from wich you can do whatever you want (i.e. ajax request)

this topic is rather complex, so check out what google tells us:

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

Using this interface is a real pain, so i suggest to implement HTTPRequests within your applet to tell the PHP server whatever you want to tell it.

regards, Michael

于 2011-08-08T21:40:58.993 回答
0

我无权访问 java 代码/servlet。甚至对服务器也不行。

嗯……这是很不寻常的情况。如果你有小程序,当然,你应该可以访问它的 src 文件来修改:)

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

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

围绕问题文本并回到问题标题本身,它说

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

我可能会说 要从 Java Applet 中提取数据,您可以使用支持 Java Applet 和 JS 交互示例的 netscape lib ,文档。在这种情况下,这是最优化的方式

祝你好运

于 2011-08-11T19:24:24.823 回答
0

除非被混淆,否则反编译/更改/再次编译小程序可能不会太难。我使用 JAD。 https://stackoverflow.com/questions/31353/is-jad-the-best-java-decompiler

于 2011-08-11T21:22:45.197 回答