我正在将一些数据发布到IIS服务器,该服务器回复了一个简单的id(这里是1692945
):
Cache-Control: private
Content-Type: text; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
Date: Tue, 23 Aug 2011 17:08:37 GMT
Content-Length: 7
1692945
text
内容类型似乎混淆了Jsoup,它引发了:
Exception in thread "main" java.io.IOException: Unhandled content type "null" on URL http://domain.com/svr_listing.aspx. Must be text/*, application/xml, or application/xhtml+xml
有没有办法指定响应必须作为text/plain
进行处理?这是一个jsoup错误吗?
谢谢,
尼古拉斯
答案 0 :(得分:3)
默认情况下,jsoup检查响应类型,以防止您意外地尝试将图像和PDF等解析为HTML。因为它无法将text
识别为有效的HTML内容类型,所以它会抛出异常。
您可以强制jsoup忽略内容类型,并使用Connection.ignoreContentType()
方法将响应解析为HTML。
E.g。
Document doc = Jsoup.connect(url).ignoreContentType(true).get(); // or .post();
答案 1 :(得分:0)
Jsoup可以从String对象中读取数据。为什么不使用InputStreamReader将服务器响应读入String,然后让JSoup解析响应?