2013-01-02 47 views
1

我试图访问使用htmlunit包含一个图像的servlet页面。
我需要保存图像或需要将servlet页面保存到html页面。Java HTML单元保存意外页面

现在使用

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

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

在此先感谢。

回答

1

试试这个代码

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

最佳

+1

如果我使用上面的代码表示以下错误来自线程“main”中的异常java.lang.ClassCastException:com.gargoylesoftware.htmlunit.UnexpectedPage无法转换为com .gargoylesoftware.htmlunit.html.HtmlPage – shakkir3435

+0

com.gargoylesoftware.htmlunit.WebClient类型的webClient? – zwang

+0

yes.import com.gargoylesoftware.htmlunit.WebClient; – shakkir3435

3

你需要得到WebResponse的文本内容(你也不需要URL对象):

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

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

+0

谢谢这个代码工作,但我试图存储图像与此代码InputStream is = response.getContentAsStream();尝试{OutputStream os = new FileOutputStream(“/ xx”); try [ \t \t \t byte [] buffer = new byte [400000]; \t \t \t for(int n;(n = is.read(buffer))!= -1; ) \t \t \t os.write(buffer,0,n); \t \t \t System.out.println(“chk”); \t \t \t} \t \t \t最后{ \t \t \t \t os.close(); \t \t \t is.close(); \t \t \t} \t}赶上(例外){ \t \t \t}图像内容只显示“谢谢”是这样的代码是正确的保存图像。有没有其他的想法 – shakkir3435

+0

对不起,我不知道保存图像,我只知道一点关于HtmlUnit :)我回答了这个问题,因为它与HtmlUnit严格相关。如果您不确定如何保存图像,可能应该查找相关问题或发布一个新问题。 –