2012-06-23 14 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"); 

उपयोग कर रहा हूँ लेकिन मैं अपवाद हो रही है

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

क्या पृष्ठ एक वैध HTML पृष्ठ लौटाया जा रहा है? –

+0

हाँ यह मान्य एचटीएमएल पेज रिटर्न है। – narendra

उत्तर

1

JavaDoc of UnexpectedPage के भीतर के लिए लॉग इन उसके बाद वे राज्य है कि

एक सामान्य पृष्ठ जो किसी अप्रत्याशित सामग्री प्रकार को वापस लौटाया जाता है सर्वर द्वारा लौटाया जाता है।

मुझे लगता है कि आप इसके बजाय

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

उपयोग

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

यह मेरे साथ ठीक काम किया का उपयोग करने का webClient.getPage("url");

+0

हाँ आप सही हैं इस अपवाद का कारण सामग्री प्रकार का ब्रोकोज मेल नहीं है। मैं आवेदन/जेसन सामग्री प्रकार गुजर रहा था। – narendra

0

की सामग्री प्रकार की जांच की सलाह देंगे।