2013-07-27 57 views
0

我想寫一個同時使用Apache 4.x lib和HtmlUnit的類。實質上,我需要一些請求來表現得像一個真正的瀏覽器,HtmlUnit很好地完成了。 HtmlUnit的缺點是速度很慢,我的許多請求都不需要它。使用HtmlUnit和Apache發送請求,同時維護Cookie

我知道在HtmlUnit中禁用css/javascript可以提高處理速度,但這還不夠。我想實現HtmlUnit和Apache(或其他任何可以完成這項工作的東西)。

我唯一的要求是有能力定義標頭和通過cookie。

那麼,有沒有可能,例如:

  • 將請求發送到Website.com使用Apache庫,收集的cookie。
  • 使用HtmlUnit向Website.com/Page2發送請求,同時保持會話並在頁面加載時執行javascript。

所以我的問題是..我能完成我想要做的事嗎?或者如果我以錯誤的方式去解決問題,有沒有一種方法可以大大加快使用HtmlUnit的請求速度?我可以在HtmlUnit的WebClient和Apache的HttpClient之間共享CookieContainer嗎?

回答

0

是的,這是可能的。我有時也會這樣做。在使用httpclient之前,您需要從htmlunit中提取cookie。你可以通過撥打電話

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

你可以遍歷該組並提取你需要的任何cookie。使用httpclient時,將cookie作爲標題參數傳遞。它會工作。