Jsoup 1.7.1错误?

时间:2012-09-29 03:00:12

标签: java jsoup

执行以下代码:

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();

没关系!

在以下代码中

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

Jsoup只能用于下载HTML或XML吗?

2 个答案:

答案 0 :(得分: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客户端可以获得更多控制权,但这种方法在紧要关系中非常有用。

答案 1 :(得分:1)

Jsoup被设计为HTML / XML解析器,而不是纯HTTP客户端。如果您需要下载一些非HTML / XML文件,那么请使用普通的HTTP客户端,而不是HTML / XML解析器。

使用正确的工具完成工作。