【发布时间】:2010-01-26 17:46:20
【问题描述】:
其实我想通过java代码提交一个html表单。
我为此使用 Apache HttpClient API Post 方法,但是当我发送请求时,它返回给我的页面是填好的表单,而不是提交它。
当我打开我想通过 java 代码提交的 Html 表单时,我知道它有一个 ajax 调用来提交。
我想知道如何从 java 代码中发送该 ajax 调用。
我将非常感谢这方面的任何帮助。
【问题讨论】:
其实我想通过java代码提交一个html表单。
我为此使用 Apache HttpClient API Post 方法,但是当我发送请求时,它返回给我的页面是填好的表单,而不是提交它。
当我打开我想通过 java 代码提交的 Html 表单时,我知道它有一个 ajax 调用来提交。
我想知道如何从 java 代码中发送该 ajax 调用。
我将非常感谢这方面的任何帮助。
【问题讨论】:
最简单的方法是调用与 Ajax 请求相同的 HTTP 请求。只需自己阅读 JS 代码,从中过滤掉 URL 并像 Ajax 请求一样填充参数 - 只需使用 HTTP 标头跟踪器(Firebug?)即可获取所有参数。
最难的方法是在底层模拟(重新发明)普通的网络浏览器。也就是说,下载/解释 JavaScript 并执行它们。这样,您根本不需要担心 JS/Ajax 代码,只需调用纯 HTTP 请求。不用说,这毕竟相当麻烦。
如果您确实想要一个 Web 应用程序测试工具,请查看 Selenium。
如果这个网络应用程序实际上不是你的,那么我希望你已经阅读了他们的robots.txt以确保你没有违法。
【讨论】:
Firefox 的Live HTTP Headers 扩展对于查看实际情况非常有用,FireBug 也是如此。使用这些,您应该能够看到 Ajax 正在做什么而您的用户代理没有。
【讨论】: