2012-06-23 3 views
5

페이지 소스를 가져 오는 데 웹 클라이언트를 사용하고 있습니다. 성공적으로 로그인했습니다. 그 후, 나는 다른 URL을 사용하여 페이지 소스를 얻기 위해 동일한 개체를 사용하지만 같은 예외를 보여주는 것 :웹 클라이언트를 사용하여 데이터 인증 페이지를받는 방법

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

이 내가 사용하고있는 코드입니다. 위의 코드

  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()); 

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

은 진술이 코드

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

을 사용하고 있습니다하지만 예외에게 JavaDoc of UnexpectedPage

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

페이지가 유효한 HTML 페이지로 반환되고 있습니까? –

+0

예 유효한 HTML 페이지입니다. – narendra

답변

1

를 얻고 성공적으로 실행하고 그 후 로그인이

예기치 않은 내용 유형이 일 때마다 리턴되는 일반 페이지.

난 당신이 대신 나와 함께 잘 작동

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

사용

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

를 사용하는 webClient.getPage("url");

+0

네,이 예외가 발생했습니다. 컨텐츠 유형이 일치하지 않습니다. 응용 프로그램/json 콘텐츠 형식을 전달하고 있었다. – narendra

0

의 내용 유형을 확인하는 것이 권합니다.

관련 문제