检查URL mime类型是否不是网页

时间:2011-12-24 16:57:54

标签: java android

我想检查一下网址的mimetype是不是网页。我可以用Java做到这一点吗?我想检查文件是rar或mp3还是mp4或mpeg等等,而不是网页。

3 个答案:

答案 0 :(得分:3)

您可以发出HTTP HEAD请求并检查Content-Type响应标头。您可以在发出请求之前使用HttpURLConnection.setRequestMethod("HEAD")。然后使用URLConnection.connect()发出请求,然后使用URLConnection.getContentType()读取HTTP标头。

使用HEAD请求的好处是永远不会传输/生成实际资源。您还可以使用GET请求并使用URLConnection.guessContentTypeFromStream()检查生成的流,这将检查实际字节并尝试猜测流表示的内容。我认为它会在流中查找magic numbers或其他模式。

答案 1 :(得分:1)

网址中没有固有内容可以告诉您在请求时会收到什么。您必须实际请求资源,然后检查content-type标头。此时,仍然不清楚你应该做什么 - 一些内容类型将(几乎)总是由浏览器处理,例如text/html。某些类型由浏览器处理,例如application/xhtml+xml。某些类型的可以由浏览器处理,例如application/pdf

如果您认为这些“网页”中有哪些内容仍然不明确 - 您需要自行决定。

您可以在请求资源后检查content-type标题,例如使用HttpURLConnection class

答案 2 :(得分:0)

content-type:text / html代表网页。