Не удается загрузить файлы с SEC.Правительство, использующее Java

#java

#java

Вопрос:

Я пытаюсь загрузить файлы с SEC.gov , но следующий код не позволяет загрузить файл. Все файлы, загруженные с помощью этого кода, имеют размер 1 КБ.

 URL Url = null;

try {
    Url= new URL("http://www.sec.gov/Archives/edgar/data/769397/000076939716000079/0000769397-16-000079-xbrl.zip");

} catch (MalformedURLException e) {

    e.printStackTrace();
}

String fullPathFileName = "D:\0000769397-16-000079-xbrl.zip";

File destinationFile = new File(fullPathFileName);

try {
    FileUtils.copyURLToFile(Url, destinationFile);

} catch (IOException e) {

    e.printStackTrace();

}
  

Если я использую этот же код для загрузки с другого сайта, он работает. Я также попробовал метод copuURLToFile с таймаутом подключения и таймаутом чтения.

Комментарии:

1. Какую ошибку вы получаете?

2. Я не получаю никакой ошибки. Все загруженные файлы имеют размер 1 КБ и нечитаемы. Я попытался загрузить файлы zip и XBRL XML из SEC. Gov с тем же результатом. Например: sec.gov/Archives/edgar/data/769397/000076939716000079 /…

3. Что находится в файле 1k, который вы получаете? Если у вас установлен Cygwin, что file ... говорится при загрузке?

4. Я попробовал это и скачал этот файл — sec.gov/Archives/edgar/data/1108524/000119312509180950 /… и воспроизвел эту ошибку. Я получил обратно файл размером 1 КБ, использовал файл cygwin и перешел к следующему: файл crm-20090731_file_1.xml crm-20090731_file_1.xml : сжатые данные gzip из Unix

Ответ №1:

Проблема с FileUtils.copyURLToFile() заключается в том, что он не дает вам никакой информации о том, что он делает. Попробуйте wget утилиту из командной строки:

 wget http://www.sec.gov/Archives/edgar/data/769397/000076939716000079/0000769397-16-000079-xbrl.zip
--2016-10-18 21:47:31--  http://www.sec.gov/Archives/edgar/data/769397/000076939716000079/0000769397-16-000079-xbrl.zip
Resolving www.sec.gov... 104.82.85.98
Connecting to www.sec.gov|104.82.85.98|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.sec.gov/Archives/edgar/data/769397/000076939716000079/0000769397-16-000079-xbrl.zip [following]
--2016-10-18 21:47:32--  https://www.sec.gov/Archives/edgar/data/769397/000076939716000079/0000769397-16-000079-xbrl.zip
Connecting to www.sec.gov|104.82.85.98|:443... connected.
ERROR: cannot verify www.sec.gov's certificate, issued by `/C=US/O=GeoTrust Inc./CN=GeoTrust SSL CA - G3':
  Unable to locally verify the issuer's authority.
To connect to www.sec.gov insecurely, use `--no-check-certificate'.
Unable to establish SSL connection.
  

Вероятно, вы получили аналогичное сообщение об ошибке. Попробуйте открыть свой файл размером 1 КБ в блокноте.

Комментарии:

1. Большое спасибо за этот отличный совет! Вы решили проблему с помощью wget. HTTP перенаправлялся на HTTPS, а copyURLToFile не удался. Когда я изменил свой URL на HTTPS, он начал работать. Добрые люди из SEC ответили на мой запрос и попросили меня попробовать HTTPS.