2016-05-27 20 views
0

Ich versuche, auf eine URL zuzugreifen (admin.do) direkt nach der Anmeldung in der Anwendung und die URL ist eine eingeschränkte Seite. Wenn ich das Szenario im Browser ausführe, kann ich jedoch sehen, dass die Seite umgeleitet wird, um auf die verweigerte Seite zuzugreifen. Wenn ich dasselbe mit htmlunit ausführe, sehe ich stattdessen die folgende Ausnahme.HtmlUnit + Webclient.getPage wirft

com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException: 403 Forbidden for https://localhost:27216/app/admin.do 
    at com.gargoylesoftware.htmlunit.WebClient.throwFailingHttpStatusCodeExceptionIfNecessary(WebClient.java:536) 
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:331) 
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:387) 
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:372) 

Irgendeine Idee, wie man das erreicht? Hier ist mein Code.

HtmlPage resp = null; 
WebClient webClient = getWebClient(); 
HtmlPage page = (HtmlPage) webClient.getPage(url); 
+0

Überprüfen Sie die Überschriften. Es könnte sein, dass der Browser die Cookies erfasst hat, während htmlunit sie ignoriert. –

Antwort

2

Es funktioniert. Die Ausnahme wird ausgelöst und daher kann die Seite nicht der Weiterleitung folgen. Ich setze die Eigenschaft throwExceptionOnFailingStatusCode auf die WebClient auf false, damit die Ausnahme ignoriert wird.

HtmlPage resp = null; 
WebClient webClient = getWebClient(); 
webClient.setThrowExceptionOnFailingStatusCode(false); 
HtmlPage page = (HtmlPage) webClient.getPage(url);