在维护cookie的同时使用HtmlUnit和Apache发送请求

时间:2013-07-27 04:00:37

标签: java apache htmlunit

我想编写一个同时使用Apache 4.x lib和HtmlUnit的类。从本质上讲,我需要一些请求表现得像真正的浏览器,HtmlUnit很好地完成。 HtmlUnit的缺点是它很慢,我的许多请求都不需要它。

我知道在HtmlUnit中禁用css / javascript可以提高处理速度,但这还不够。我想实现HtmlUnit和Apache(或任何其他可以完成这项工作的东西)。

我唯一的要求是能够定义标头并传递cookie。

那么,是否有可能,例如:

  • 使用Apache库向Website.com发送请求并收集cookie。
  • 使用HtmlUnit向Website.com/Page2发送请求,同时维护会话并在页面加载时执行javascript。

所以我的问题是......我可以完成我想做的事情吗?或者,如果我采用错误的方式,是否有一种方法可以使用HtmlUnit大幅加快请求?我可以在HtmlUnit的WebClient和Apache的HttpClient之间共享CookieContainer吗?

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。我有时也这样做。在使用httpclient之前,您需要从htmlunit中提取cookie。你可以通过调用

来做到这一点
Set<Cookie> cookies = webClient.getCookieManager().getCookies();

您可以遍历该集并提取您需要的任何Cookie。使用httpclient时,将cookie作为标题参数传递。它会起作用。