2

次のコードの実行:

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 のダウンロードにのみ使用できますか?

4

2 に答える 2

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 クライアントを使用するとより詳細に制御できますが、この方法はピンチの場合に役立ちます。

于 2012-09-30T01:35:16.077 に答える
1

Jsoup は、純粋な HTTP クライアントとしてではなく、HTML/XML パーサーとして設計されています。HTML/XML 以外のファイルをダウンロードする必要がある場合は、HTML/XML パーサーではなく、通常の HTTP クライアントを使用してください。

仕事に適したツールを使用することで何か。

于 2012-09-29T11:36:46.517 に答える