SE. Почему mp3 по прямой ссылке не скачивается?

 
 
 
Сообщения:23
Пробовал разные вариации (больше всего понравилась библа commons.io) но вот какая странность: любой файл качается нормально, а mp3 получается не более чем на 1 Кб. Открыл его текстовым редактором, а там вот чего:
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>


вот рабочий код, архив скачиваетсяи распаковывается (требуется собственно commons-io, повторюсь, стандартными инструментами результат всё равно такой же), всё нормально. Но ежели сюда подставить к примеру вот такую урлу:
https://govoritmoskva.ru/media/broadcasts/audio/2018/01/31/2018_01_31_Podem.mp3
то скачивается какой то хтмл непонятный, как я выше писал.

        
        String fileName = "C:\\test\\commons-io-2.6-bin.zip";
        URL website = new URL("http://apache-mirror.rbc.ru/pub/apache//commons/io/binaries/commons-io-2.6-bin.zip");

        System.out.println("Download start!");
        FileUtils.copyURLToFile(website, new File(fileName));
        System.out.println("Download finish!");


И во всём гугле разные вариации скачки и ни у кого вопросов не возникает, а у меня один и тот же результат и дома и на работе. Может где то ИДЕ подкрутить надо как то?
 
 
Сообщения:23
О чудо!
Заработало!
Из всего перерытого, реально работает эта библиотека -> HttpComponents. Ниже сам метод.

 public static boolean saveFile(URL fileURL, String fileSavePath) {

        boolean isSucceed = true;

        CloseableHttpClient httpClient = HttpClients.createDefault();

        HttpGet httpGet = new HttpGet(fileURL.toString());
        httpGet.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0");
        httpGet.addHeader("Referer", "https://www.google.com");

        try {
            CloseableHttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity fileEntity = httpResponse.getEntity();

            if (fileEntity != null) {
                FileUtils.copyInputStreamToFile(fileEntity.getContent(), new File(fileSavePath));
            }

        } catch (IOException e) {
            isSucceed = false;
        }

        httpGet.releaseConnection();

        return isSucceed;
    }
Изменен:17 окт 2019 13:07
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет