[英]download file from website that take query string (ex. www.example.com/files?id=123)
[英]Java - Get filename from “http://www.example.com/something.php?id=1111”
谷歌搜索后,我發現文件名位於Content-Disposition
標頭字段中,但是此鏈接沒有此標頭字段。 鏈接在這里
http://www.songspk.link/link/song.php?songid=5558
在網絡瀏覽器中,以上鏈接重定向到
http://sound6.mp3slash.net/indian/mumbai_salsa/mumbaisalsa04%28www.songs.pk%29.mp3
我使用的代碼:
URL url = new URL("http://www.songspk.link/link/song.php?songid=5558");
HttpURLConnection conn = null;
try {
conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("User-Agent",
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0");
conn.setRequestMethod("GET");
conn.setInstanceFollowRedirects(true);
Map<String, List<String>> map = conn.getHeaderFields();
Set<String> keys = map.keySet();
for (String s : keys) {
System.out.println(s);
System.out.println("--->" + map.get(s));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
conn.disconnect();
}
我檢查了所有標題字段,這是列表
null --->[HTTP/1.1 200 OK] ETag --->["98f85f68c5ddcf1:0"] Date --->[Wed, 23 Mar 2016 10:01:15 GMT] Content-Length --->[5777792] Last-Modified --->[Wed, 01 Oct 2014 22:16:54 GMT] Accept-Ranges --->[bytes] Content-Type --->[audio/mpeg] X-Powered-By-Plesk --->[PleskWin] X-Powered-By --->[ASP.NET] Server --->[Microsoft-IIS/7.5]
我需要原始文件名。 如果可以解決我的問題,那么使用外部庫就沒有問題。
只需使用連接的getURL()方法,它將返回已重定向的url:
System.out.println(conn.getURL());
輸出:
http://sound6.mp3slash.net/indian/mumbai_salsa/mumbaisalsa04(www.songs.pk).mp3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.