如何通过Java从其下载链接获取文件扩展名?

我想从它们的下载链接中获取一些文件的扩展名.

下载链接不包含其文件扩展名.例如,链接如下所示:

http://yourshot.nationalgeographic.com/u/fQYSUbVfts-T7odkrFJckdiFeHvab0GWOfzhj7tYdC0uglagsDNfNYI4FFesWV5zeSPtcfpyHzKZI7dHjkluwtIYNkXOGmjh43Ktdn0VeBWhQ-9l2kheOPt5N2TM3yPEW4tTrtFFqniatwxxhbqsc78IU2pBaqWwyEVLeQx64zSda2CNGmUpSxyte_tamVoIk3y4zXisQ-vjmMp6n1BAB3nbUVlwWg/

我试图使用myHttpUrlConnection.getContentType()获得文件扩展名,但结果却不是我想要的结果.

一些下载链接返回一个短语,例如“ text / plain”,“ application-octet-stream”,multipart / form-data等.但我只想输入正确且清晰的类型,例如rar,mp4,txt,jpeg,mkv,zip,png,apk,mp3等.

解决方法:

你不能这样做. getContentType()方法简单:

Returns the value of the content-type header field.

在大多数情况下(尽管不能保证)与文件扩展名/文件类型有关,例如application / pdf表示该URL下有一个PDF文件.

您列出的每种带有扩展名的文件类型(rar,mp4,txt,jpeg,mkv,zip,png,apk,mp3)都有另一种结构.为了可靠地执行您想做的事情,您必须首先下载整个文件,然后根据内容检查其类型.

您可以使用的库的一个很好的例子是Apache Tika.

上一篇:java-如何终止BufferedInputStream .read()调用


下一篇:Android HTTPUrlConnection POST