2013-01-02 88 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嚴格相關。如果您不確定如何保存圖像,可能應該查找相關問題或發佈一個新問題。 –