Изучаю JAVA и столкнулся с проблемой. Мне нужно отправить GET запрос на сервер и скачать файл. Кодировка файла gzip. Я использовал вот такой код:
URL url = new URL("https://s3-eu-west-1.amazonaws.com/live-usermap.twaservers.com/wgid/82599857");
String fileName = "UserID.txt";
Path targetPath = new File(fileName).toPath();
Files.copy(url.openStream(), targetPath, StandardCopyOption.REPLACE_EXISTING);
Но он скачивает файл внутри, которого явно не то, что мне нужно. Вот что внутри файла:
‹ 3O6J6767ФMІ01Х55I1СMJІLХ52KNґ4L5MіLґ Јп¶Ђ$
А вот что нужно:
7c2c7371-b845-54d4-bb9e-26ca91e5f9a8
Пробовал разные реализации скачивания файла, но результат примерно один и тот же. Буду благодарен за ответ.
UP: Поправил под gzip
Если вы посмотрите заголовки http-ответа, то увидите, что Content-Encoding: gzip
По этому, для чтения нужно использовать GZIPInputStream.
URL url = new URL("https://s3-eu-west-1.amazonaws.com/live-usermap.twaservers.com/wgid/82599857");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
System.out.println("Length : " + con.getContentLength());
Reader reader = null;
if ("gzip".equals(con.getContentEncoding())) {
reader = new InputStreamReader(new GZIPInputStream(con.getInputStream()));
}
else {
reader = new InputStreamReader(con.getInputStream());
}
while (true) {
int ch = reader.read();
if (ch==-1) {
break;
}
System.out.print((char)ch);
}
Вывод в консоль:
Length : 56
7c2c7371-b845-54d4-bb9e-26ca91e5f9a8
Process finished with exit code 0
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Всем привет, есть такой таск - отобразить все изображения хранящиеся в Android устройстве в Grid LayoutЯзык Java
Задался таким банальным вопросом как "хочу увидеть коллизию своими глазами в 8 джаве"Из истоков известно, что колизия возникает в том случае,...
по заданию проекта должен выслать решение, которое будет запускаться файлом с форматомbat и