所以我试图使用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点
答案 0 :(得分:2)
正如其名称所示,HtmlPage是包含HTML的页面。 JSON不是HTML。
DefaultPageCreator将根据HTTP响应的内容类型创建一个页面,基本上是HTML内容的HtmlPage,XML内容的XmlPage,其他文本内容的TextPage和其他任何的 UnexpectedPage。
(强调我的)。
因此,正如您所获得的异常所示,您观察到的行为是记录的行为:您获得的页面既不是HTML,也不是XML,也不是文本,因此您获得了UnexpectedPage。
您的代码应该是:
UnexpectedPage page = webClient.getPage(URL + users[finalUsersIndex]);