之前我问过这个question并且Evgeniy Dorofeev回答了它。虽然只为直接链接工作,但我接受了他的回答。他刚刚告诉我关于从直接链接检查内容类型的信息:
String requestUrl = "https://dl-ssl.google.com/android/repository/android-14_r04.zip";
URL url = new URL(requestUrl);
URLConnection c = url.openConnection();
String contentType = c.getContentType();
据我所知,有两种URL
类型可以下载文件:
.zip
扩展名)。所以我们可以知道要下载的文件。您可以尝试从该链接下载。我需要检查它是文件还是网页。如果内容类型是文件,我必须下载它。
所以我的问题:
感谢您的帮助。
答案 0 :(得分:5)
打开URLConnection后,将返回头文件。有一些关于该文件的信息。你可以从那里拉出你想要的东西。例如:
URLConnection u = url.openConnection();
long length = Long.parseLong(u.getHeaderField("Content-Length"));
String type = u.getHeaderField("Content-Type");
length
是文件的大小(以字节为单位),type
类似application/x-dosexec
或application/x-rar
。
答案 1 :(得分:1)
此类链接使用HTTP redirects将浏览器重定向到实际内容。要获得正确的内容类型,您只需通过将HttpURLConnection
设置为true(记录为here)告诉setFollowRedirects()
关注重定向。
答案 2 :(得分:0)
MimeTypeMap.getFileExtensionFromUrl(URL)