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

Java 在维护cookie的同时使用HtmlUnit和Apache发送请求,java,apache,htmlunit,Java,Apache,Htmlunit,我想编写一个同时使用Apache4.xlib和HtmlUnit的类。本质上,我需要一些请求的行为像一个真正的浏览器,HtmlUnit很好地实现了这一点。HtmlUnit的缺点是速度非常慢,我的许多请求都不需要它 我知道在HtmlUnit中禁用css/javascript可以提高处理速度,但这还不够。我想同时实现HtmlUnit和Apache(或者其他任何可以完成这项工作的东西) 我唯一的要求是能够定义头并传递cookie 那么,是否有可能,例如: 使用Apache库向Website.com发送

我想编写一个同时使用Apache4.xlib和HtmlUnit的类。本质上,我需要一些请求的行为像一个真正的浏览器,HtmlUnit很好地实现了这一点。HtmlUnit的缺点是速度非常慢,我的许多请求都不需要它

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

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

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

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

所以我的问题是。。我能完成我想做的事吗?或者,如果我走错了方向,有没有一种方法可以使用HtmlUnit大幅加速请求?我可以在HtmlUnit的
WebClient
和Apache的
HttpClient
之间共享CookieContainer吗?

是的,这是可能的。我有时也这样做。在使用httpclient之前,需要从htmlunit中提取cookie。你可以打电话来

Set<Cookie> cookies = webClient.getCookieManager().getCookies();
Set cookies=webClient.getCookieManager().getCookies();
您可以在集合中循环并提取所需的任何cookie。使用httpclient时,将cookie作为头参数传递。它会起作用的