2012-09-29 83 views
2

執行以下代碼:Jsoup 1.7.1錯誤?

Jsoup.connect(baseURL + dataJSSrc).execute();

拋出一個異常:

org.jsoup.UnsupportedMimeTypeException: Unhandled content type. Must be text/*, application/xml, or application/xhtml+xml. Mimetype=application/x-javascript, URL=http://www.abc.com/playdata/206/8910.js?44613.77 

但是當我使用

URLConnection conn = new URL(baseURL + dataJSSrc).openConnection();

是OK!

下面的代碼

System.out.println(conn.getContentType()); // out put 'application/x-javascript' 

可以Jsoup僅可用於下載HTML或XML?

回答

1

Jsoup被設計爲HTML/XML解析器,而不是純粹的HTTP客戶端。如果您需要下載一些非HTML/XML文件,那麼請使用普通的HTTP客戶端,而不要使用HTML/XML解析器。

某些使用正確的工具進行工作。

7

雖然我不反對BalusC的回答,但您可以使用Jsoup下載您喜歡的任何內容。默認情況下,如果Jsoup使用一種不能解析爲HTML的MIME類型檢索內容,則會引發異常,以避免解析圖片。但是你可以用connection.ignoreContentType(true)禁用的測試,如果你只是想在字節或字符串:

String script = Jsoup.connect(jsUrl).ignoreContentType(true).execute().body(); 

byte[] bytes = Jsoup.connect(imageUrl).ignoreContentType(true).execute().bodyAsBytes(); 

,你會得到更多的控制有一個完整的HTTP客戶端,但是這種方法可以用於捏合。