如何使用HTMLUNIT Java进行HtmlPage刷新?

时间:2012-03-30 21:35:02

标签: java refresh htmlunit

刷新页面时遇到问题。 我正在使用HTMLUNIT。我使用WebClient和HTMLPAge来访问资源。

com.gargoylesoftware.htmlunit.WebClient
com.gargoylesoftware.htmlunit.HtmlPage


WebClient webClient = new WebClient()
webClient.setJavaScriptEnabled(true)
HtmlPage page = (HtmlPage)webClient.getPage(resource)

我需要刷新页面才能从资源中获取新数据。 我试图清除缓存webClient.getCache()。clear(); 并尝试使用

再次访问该资源
HtmlPage page = (HtmlPage)webClient.getPage(resource)`.

我从资源获得相同的先前数据。 我是初学者,任何人都可以指导我如何做到这一点。

谢谢, 纳加

2 个答案:

答案 0 :(得分:3)

你试过这个简单的吗?

page.refresh();

应该做的工作。

答案 1 :(得分:2)

几个月前我遇到了类似的问题,我确实通过清除缓存解决了这个问题。确保使用适当的变量。试试这段代码(纠正任何语法错误):

public static HtmlPage myGetPage(WebClient webClient, String url,
  boolean clearCache) throws Exception {
    if (clearCache) {
        webClient.getCache().clear();
    }
    return webClient.getPage(url);
}

public void myMethod() {
    WebClient webClient = new WebClient();
    webClient.setJavaScriptEnabled(true);
    String url = "http://stackoverflow.com/users/268273";
    HtmlPage page = myGetPage(webClient, url, false); // We don't clear de cache
    System.out.println(page.asXml()); // Should return original value
    page = myGetPage(webClient, url, true); // We clear the cache
    System.out.println(page.asXml()); // Should return the new value
}

PS:当然,请使用您的网址:)