2012-06-23 10 views
5

Estoy usando el cliente web para obtener la fuente de la página. Me he conectado con éxito. Después de eso, utilizo mismo objeto para conseguir fuente de la página usando diferentes URL, pero está mostrando como una excepción:Cómo obtener una página autenticada de datos usando el cliente web

java.lang.ClassCastException: com.gargoylesoftware.htmlunit.UnexpectedPage cannot be cast to com.gargoylesoftware.htmlunit.html.HtmlPage 

Este es el código que estoy usando.

  forms = (List<HtmlForm>) firstPage.getForms(); 
     form = firstPage.getFormByName(""); 

     HtmlTextInput usernameInput = form.getInputByName("email"); 
     HtmlPasswordInput passInput = form.getInputByName("password"); 
     HtmlHiddenInput redirectInput = form.getInputByName("redirect"); 
     HtmlHiddenInput submitInput = form.getInputByName("form_submit"); 

     usernameInput.setValueAttribute(username); 
     passInput.setValueAttribute(password); 

     //Create Submit Button 
     HtmlElement button = firstPage.createElement("button"); 
     button.setAttribute("type", "submit"); 
     button.setAttribute("name", "submit"); 
     form.appendChild(button); 
     System.out.println(form.asXml()); 
     HtmlPage pageAfterLogin = button.click(); 

     String sourc = pageAfterLogin.asXml(); 

     System.out.println(pageAfterLogin.asXml()); 

    ///////////////////////////////////////////////////////////////////////// 

por encima de código que se ejecuta con éxito y acceder Después de que estoy utilizando este código

HtmlPage downloadPage = null;  
downloadPage=(HtmlPage)webClient.getPage("url"); 

Pero estoy consiguiendo Excepción

java.lang.ClassCastException: com.gargoylesoftware.htmlunit.UnexpectedPage cannot be cast to com.gargoylesoftware.htmlunit.html.HtmlPage 
+0

¿Se devuelve la página como válida? –

+0

sí esto es un retorno de página html válido. – narendra

Respuesta

1

Dentro del JavaDoc of UnexpectedPage afirman que

Una página genérica que se devuelve cada vez que un tipo de contenido inesperado es devuelto por el servidor.

Yo aconsejaría que compruebe el tipo de contenido de webClient.getPage("url");

+0

sí, tiene razón, esta excepción se produjo porque el tipo de contenido no coincide. Estaba pasando el tipo de contenido application/json. – narendra

0

En lugar de utilizar

HtmlPage downloadPage = null;  
downloadPage=(HtmlPage)webClient.getPage("url"); 

Uso

UnexpectedPage downloadPage = null;  
downloadPage=(HtmlPage)webClient.getPage("url"); 

Trabajó muy bien conmigo.

Cuestiones relacionadas