簡體   English   中英

Java-從“ http://www.example.com/something.php?id=1111”獲取文件名

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM