0

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

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

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

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

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

所以我的问题是..我能完成我想做的事情吗?或者,如果我以错误的方式进行处理,是否有一种方法可以使用 HtmlUnit 大幅加快请求速度?我可以在 HtmlUnitWebClient和 Apache之间共享 CookieContainerHttpClient吗?

4

1 回答 1

0

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

Set<Cookie> cookies = webClient.getCookieManager().getCookies();

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

于 2013-08-14T10:14:10.720 回答