2012-03-30 13 views
1

Ich habe beim Aktualisieren der Seite ein Problem. Ich verwende HTMLUNIT. Ich verwende WebClient und HTMLPAge, um auf eine Ressource zuzugreifen.Wie aktualisiert man HtmlPage mit HTMLUNIT Java?

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


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

Ich muss die Seite aktualisieren, um die neuen Daten von der Ressource zu erhalten. Ich habe versucht, den Cache zu löschen webClient.getCache(). Clear(); und auch versucht, auf die Ressource zuzugreifen wieder mit

HtmlPage page = (HtmlPage)webClient.getPage(resource)`. 

ich die gleichen vorherigen Daten aus der Ressource immer bin. Ich bin Anfänger, kann jemand bitte mich leiten, wie man das macht.

Danke, Naga

Antwort

2

hatte ich ein ähnliches Problem vor ein paar Monaten und ich tat es lösen, indem Sie den Cache zu löschen. Stellen Sie sicher, dass Sie die entsprechenden Variablen verwenden. Geben Sie dieser Code einen Versuch (korrigieren Sie syntaktische Fehler):

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: Natürlich, nutzen Sie Ihre URL :)

+0

Ich habe versucht, den Cache zu löschen, es hat nicht für mich funktioniert :(. Gibt es eine Möglichkeit, dass ich das erreichen kann? – Naga

3

haben Sie versucht, dieses einfache?

page.refresh();

Sollte die Arbeit machen.