【发布时间】:2015-01-26 06:25:26
【问题描述】:
我之前问过这个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类型:
-
直接链接。例如:https://dl-ssl.google.com/android/repository/android-14_r04.zip。从这个链接,我们可以直接下载数据并获取文件名,包含文件扩展名(在这个链接中,
.zip扩展名)。这样我们就可以知道要下载什么文件。您可以尝试从该链接下载。 - 间接链接。例如:http://www.example.com/directory/download?file=52378。您是否尝试过从 Google Drive 下载数据?从 Google Drive 下载数据时,它会给您一个非直接链接,例如上面的链接。我们永远不知道该链接是否包含文件或网页。另外,我们不知道文件名和文件扩展名是什么,因为这个链接类型是不清楚的和随机的。
我需要检查它是文件还是网页。如果内容类型是文件,我必须下载它。
所以我的问题:
- 如何检查非直接链接的内容类型?
- 如本题的cmets所示,HTTP-redirects能否解决问题?
感谢您的帮助。
【问题讨论】:
-
可能的解决方案:Handling HttpClient Redirects
-
间接链接是什么意思? HTTP 重定向?
-
您是否针对此问题得到了适当的解决方案?
-
@MiteshSharma,我仍然没有找到解决方案。 @farukdgn 的答案使用返回
Content-Type标头字段的相同方法来获取内容类型。 -
@MiteshSharma,farukdgn 的回答奏效了。查看他的答案的评论,了解它为什么有效。
标签: java url httpurlconnection content-type