java – webclient中的ClassCastException

我正在使用Web客户端获取页面源.我第一次获得页面源.在我使用相同的对象获取不同URL的页面源之后,它显示的异常如下:

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

这是我正在使用的代码.

HtmlPage firstPage = webClient.getPage("firsturl");
HtmlPage downloadPage = null;
        try {
            webClient.setJavaScriptEnabled(true);

            downloadPage = (HtmlPage) webClient.getPage("secondurl");
        } catch (Exception e) {
            e.printStackTrace();
        }

Thx提前

最佳答案 它说得很清楚,你的代码正在做:

downloadPage = (HtmlPage) webClient.getPage("secondurl");

所以你假设你得到一个HtmlPage类型的对象,但实际上你得到的是一个类型的对象
UnexpectedPage.

你应该添加一个instanceof检查:

If (webClient.getPage("secondurl") instanceof HtmlPage){
downloadPage = (HtmlPage) webClient.getPage("secondurl");
}
else{
//do something
}
点赞