HtmlUnit页面响应(下载文件)

时间:2015-05-31 07:59:31

标签: java json htmlunit classcastexception

所以我试图使用HtmlUnit转到URL但是一旦你访问了这个url,它会下载一个关于你想要的数据的json文件。不知道怎么说这个,但基本上在HtmlUnit中如何从下载的文件中获取结果。

我在这里解释一下

尝试通过此

检查用户的可用性
private static final String URL = "https://twitter.com/users/username_available?username=";

...

HtmlPage page = webClient.getPage(URL + users[finalUsersIndex]);

所以基本上为每个用户名创建一个新页面的东西是URL + username返回用户可用性的json文件。我知道如何读取json文件,但问题是这个

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

我明白了这一点

HtmlPage page = webClient.getPage(URL + users[finalUsersIndex]);

我想我需要为响应创建一个新页面,但是如何自动下载文件而不是本身,单击下载文件的按钮。 (纠正我,如果我错了)

对不起凌晨4点

1 个答案:

答案 0 :(得分:2)

正如其名称所示,HtmlPage是包含HTML的页面。 JSON不是HTML。

the documentation表示;

  

DefaultPageCreator将根据HTTP响应的内容类型创建一个页面,基本上是HTML内容的HtmlPage,XML内容的XmlPage,其他文本内容的TextPage和其他任何 UnexpectedPage。

(强调我的)。

因此,正如您所获得的异常所示,您观察到的行为是记录的行为:您获得的页面既不是HTML,也不是XML,也不是文本,因此您获得了UnexpectedPage

您的代码应该是:

UnexpectedPage page = webClient.getPage(URL + users[finalUsersIndex]);