我想检查特定页面上pdf文件的上次修改时间。 pdf链接为http://www.nfib.com/Portals/0/PDF/sbet/sbet201402.pdf
我正在尝试这样做:
Connection.Response rs2 = Jsoup.connect("http://www.nfib.com/Portals/0/PDF/sbet/sbet201402.pdf").execute();
System.out.println("Header = " + rs2.header("Last-Modified"));
我收到此错误
UnsupportedMimeTypeException
答案 0 :(得分:2)
如果不必使用Jsoup,您可以使用标准URL和URLConnection类,如
URL url = new URL("http://www.nfib.com/Portals/0/PDF/sbet/sbet201402.pdf");
URLConnection connection = url.openConnection();
System.out.println("Header = " + connection.getHeaderField("Last-Modified"));
您需要记住Jsoup旨在解析HTML / XML,因此默认情况下它需要
类型
text/*, application/xml, or application/xhtml+xml
不是
application/pdf
。
如果您查看处理它的代码,它看起来像
if (contentType != null && !req.ignoreContentType() && (!(contentType.startsWith("text/") || contentType.startsWith("application/xml") || contentType.startsWith("application/xhtml+xml"))))
throw new UnsupportedMimeTypeException("Unhandled content type. Must be text/*, application/xml, or application/xhtml+xml",
contentType, req.url().toString());
但是!req.ignoreContentType()
测试给我们提示我们可以转换需求或纯粹的XML / HTML类型输入。为此,您只需添加
ignoreContentType(true)
连接设置,例如
Connection.Response rs2 = Jsoup.connect("http://www.nfib.com/Portals/0/PDF/sbet/sbet201402.pdf")
.ignoreContentType(true)
.execute();
你应该能够阅读返回的标题
System.out.println("Header = " + rs2.header("Last-Modified"));
输出:
Header = Mon, 10 Feb 2014 22:54:15 GMT