Как сделать обновление HtmlPage с помощью HTMLUNIT Java? - PullRequest
1 голос
/ 31 марта 2012

У меня возникла проблема при обновлении страницы. Я использую 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)`.

Я получаю те же самые предыдущие данные с ресурса. Я новичок, кто-нибудь может подсказать мне, как это сделать.

Спасибо, Naga

Ответы [ 2 ]

3 голосов
/ 02 мая 2012

Вы пробовали этот простой?

page.refresh();

Должен сделать работу.

2 голосов
/ 31 марта 2012

У меня была похожая проблема несколько месяцев назад, и я решил ее, очистив кеш.Убедитесь, что вы используете соответствующие переменные.Попробуйте этот код (исправьте любые синтаксические ошибки):

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: Конечно, используйте ваш URL:)

...