我想检查一下网址的mimetype是不是网页。我可以用Java做到这一点吗?我想检查文件是rar或mp3还是mp4或mpeg等等,而不是网页。
答案 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代表网页。