【问题标题】:Java - Get filename from "http://www.example.com/something.php?id=1111"Java - 从“http://www.example.com/something.php?id=1111”获取文件名
【发布时间】:2016-07-10 13:27:04
【问题描述】:

谷歌搜索后,我发现文件名在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();
}

我检查了所有标题字段,这里是列表

空值 --->[HTTP/1.1 200 OK] 电子标签 --->["98f85f68c5ddcf1:0"] 日期 --->[格林威治标准时间 2016 年 3 月 23 日星期三 10:01:15] 内容长度 --->[5777792] 最后修改 --->[格林威治标准时间 2014 年 10 月 1 日星期三 22:16:54] 接受范围 --->[字节] 内容类型 --->[音频/mpeg] X-Powered-By-Plesk --->[PleskWin] X-Powered-By --->[ASP.NET] 服务器 --->[微软-IIS/7.5]


我需要原始文件名。如果它可以解决我的问题,我使用外部库没有问题。

【问题讨论】:

    标签: java http


    【解决方案1】:

    只要使用getURL()方法连接,就会返回已经重定向的url:

    System.out.println(conn.getURL());
    

    输出:

    http://sound6.mp3slash.net/indian/mumbai_salsa/mumbaisalsa04(www.songs.pk).mp3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-27
      • 2016-01-16
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      • 2021-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多