Java HTML单元保存意外页面

时间:2013-01-02 10:45:45

标签: java htmlunit

尝试使用包含一张图片的htmlunit访问servlet页面 我需要保存图像或需要将servlet页面保存到html页面。

现在正在使用

(UnexpectedPage) webClient.getPage(new URL("https://www.xxxx.com/servlet/xxxSer")
WebResponse response = currentPage.getWebResponse();
response.getContentType();

之后我不知道该怎么办。有没有想过要做这个工作。

提前致谢。

3 个答案:

答案 0 :(得分:4)

您需要获取WebResponse的文本内容(您也不需要URL对象):

Page page = webClient.getPage("https://www.xxxx.com/servlet/xxxSer");
String content = page.getWebResponse().getContentAsString();

关于图像,你应该更清楚你是如何得到它的。如果是IMG标记中引用的图片,请使用HtmlPageHtmlImage。如果您直接请求图片,可能应使用page.getWebResponse().getContentAsStream()

答案 1 :(得分:2)

试试此代码

HtmlPage htmlpage = webClient.getPage(new URL("https://www.xxxx.com/servlet/xxxSer"));
String htmlcode = htmlpage.getWebResponse().getContentAsString();

最佳

答案 2 :(得分:0)

问题在于HTML单元无法转换不完整的HTML页面(例如,一些关闭标签)。因此,我可以使用HTMLUnit软件包中包含的HTMLParser解决此错误(我使用的是2.36.0v)。 HTMLParser完成并处理这种类型的转换错误。如果您需要执行JS,则HtmlPage可以工作。

//Web client creation.
Page page = webClient.getPage(url);
HtmlPage tmpPage = HTMLParser.parseHtml(page.getWebResponse(), webClient.getCurrentWindow());
// use tmpPage here