Искам да проверя последното изменено време на 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
Отговори:
2 за отговор № 1Ако не е необходимо да се прави с 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