Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用web客户端获取经过身份验证的数据页_Java_Httpclient_Webclient_Httpurlconnection - Fatal编程技术网

Java 如何使用web客户端获取经过身份验证的数据页

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

我正在使用web客户端获取页面源代码。我已成功登录。之后,我使用同一个对象使用不同的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());

    /////////////////////////////////////////////////////////////////////////
但我有个例外

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