我想通过java填充HTTP表单的文本字段,然后想要通过java点击提交按钮,以便在提交表单后返回文档的页面源。 我可以通过直接发送HTTP请求来做到这一点,但我不这样做。如何通过java填充HTTP表单?
回答
您可能需要编写一个Java Applet,因为发送直接请求的唯一方法是将其与浏览器连接。
当然,为了这个工作,你必须嵌入applet到页面中。如果您不控制页面,则无法完成此操作。如果你确实控制了页面,那么你可能会使用Javascript,而不是试图让Java Applet去完成它,这会更加麻烦和困难。
只是为了澄清,您创建HTTP请求的问题是什么以及您为什么要使用不同的方法?
我通常用HtmlUnit来做。他们有自己的页面上的例子:
@Test
public void submittingForm() throws Exception {
final WebClient webClient = new WebClient();
// Get the first page
final HtmlPage page1 = webClient.getPage("http://some_url");
// Get the form that we are dealing with and within that form,
// find the submit button and the field that we want to change.
final HtmlForm form = page1.getFormByName("myform");
final HtmlSubmitInput button = form.getInputByName("submitbutton");
final HtmlTextInput textField = form.getInputByName("userid");
// Change the value of the text field
textField.setValueAttribute("root");
// Now submit the form by clicking the button and get back the second page.
final HtmlPage page2 = button.click();
}
而且你可以阅读更多here.
HtmlUnit等其他项目,最好来自Apache或谷歌? – 2013-06-26 20:48:03
如果你不想直接跟HTTP(为什么?),然后看看Watij。
它允许您在Java过程中调用浏览器(IE)作为COM控件,使用它们的文档ID等浏览页面元素,填写表单并按下按钮。因为它运行的是浏览器,所以Javascript将像平常一样运行(就像手动完成这项操作一样)。
非常感谢。我只是看着相同的选项,并发现它是适合我需要的最佳选择。 – 2009-09-05 11:46:03
在你的其他帖子中提到linux。不知道它是否是同一个应用程序,但Watij仅适用于Windows。 – 2009-09-05 12:17:32
是的,它是同一个应用程序。我需要在Linux上运行应用程序(debian)。你能给我推荐像watij for linux一样的东西吗? 这很紧急。 第二个问题,com/jniwrapper/win32/ie/WebBrowser类未找到.. 从哪里可以下载该库 – 2009-09-05 12:39:00
- 1. 如何通过Ajax填充Django表单?
- 2. 通过URL填充web表单
- 3. 填充菜单通过JQuery
- 4. 通过http填充xml的Flex树
- 5. 用XML填充表单(Java)
- 6. 我将如何通过HTTP POST发送填充对象的NSArray?
- 7. Android:SearchBox - >通过HTTP/JSON动态填充提示列表
- 8. 如何填充DataGrid中通过的SQLQuery
- 9. 如何检测是否通过自动填充填充了任何表单元素?
- 10. 通过双重条件填充列表
- 11. 通过提取填充数据列表
- 12. 如何填充表格中每个单元格的填充?
- 13. 如何通过给出开始字母来填充单元格
- 14. 如何通过CSS设置QTableView单元格的填充?
- 15. 如何预先填充Python Formish表单?
- 16. 如何自动用jQuery填充表单?
- 17. 如何用CSS填充HTML表单?
- 18. 如何重新填充此zend表单?
- 19. 如何使用iText填充XFA表单?
- 20. 通过RequestFactory填充ExtGWT树
- 21. 通过填充在IE11
- 22. Django - 通过request.user.somechoice_set.all()填充MultipleChoiceField()
- 23. 通过片段填充listview
- 24. 通过TCP填充数据
- 25. 通过cshtml填充selectList
- 26. 通过代码填充ITemplate
- 27. 如何使用Java重新填充表单?
- 28. 通过PowerShell填充Web表单无法识别输入的值
- 29. Rails 5 - hidden_field_tag由JS填充不提交表单通过:onchange
- 30. ASP.NET MVC - 通过数据库动态填充表单
你的意思是HTML表单正确吗?请注意“非常紧急”在这里被认为是粗鲁的。 – AnthonyWJones 2009-09-05 11:22:00