Java 如何使用web客户端获取经过身份验证的数据页
我正在使用web客户端获取页面源代码。我已成功登录。之后,我使用同一个对象使用不同的URL获取页面源,但它显示了如下异常:Java 如何使用web客户端获取经过身份验证的数据页,java,httpclient,webclient,httpurlconnection,Java,Httpclient,Webclient,Httpurlconnection,我正在使用web客户端获取页面源代码。我已成功登录。之后,我使用同一个对象使用不同的URL获取页面源,但它显示了如下异常: java.lang.ClassCastException: com.gargoylesoftware.htmlunit.UnexpectedPage cannot be cast to com.gargoylesoftware.htmlunit.html.HtmlPage 这是我正在使用的代码 forms = (List<HtmlForm&g
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());
/////////////////////////////////////////////////////////////////////////
但我有个例外
java.lang.ClassCastException: com.gargoylesoftware.htmlunit.UnexpectedPage cannot be cast to com.gargoylesoftware.htmlunit.html.HtmlPage
他们在报告中说
每当出现意外内容类型时返回的通用页面
由服务器返回
我建议您检查webClient.getPage(“url”)的内容类型编码>而不是使用
HtmlPage downloadPage = null;
downloadPage=(HtmlPage)webClient.getPage("url");
使用
我觉得效果很好。返回的页面是有效的HTML页面吗?是的,这是有效的HTML页面返回。是的,您是对的。发生了此异常br内容类型不匹配的原因。我正在传递application/json内容类型。
HtmlPage downloadPage = null;
downloadPage=(HtmlPage)webClient.getPage("url");
UnexpectedPage downloadPage = null;
downloadPage=(HtmlPage)webClient.getPage("url");