2012-03-30 2 views
1

У меня возникла проблема при обновлении страницы. Я использую HTMLUNIT.Я использую WebClient и HTMLPAge для доступа к ресурсу.Как обновить HtmlPage с помощью HTMLUNIT Java?

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

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

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 :)

+0

Я пробовал очистить кеш, это не сработало для меня :(. Есть ли способ, которым я могу это достичь? – Naga

3

вы попробовать этот простой?

page.refresh();

должны делать свою работу.