Ход загрузки с помощью java.net.http.HttpClientJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Ход загрузки с помощью java.net.http.HttpClient

Сообщение Anonymous »

Я использую java.net.http.HttpClient для загрузки большого файла.
Как заставить HttpClient сообщать о ходе загрузки? Например, может ли он вызывать обратный вызов каждый X байт после завершения загрузки?
Код загрузки выглядит следующим образом:

Код: Выделить всё

HttpClient client = HttpClient.newBuilder()
.followRedirects(Redirect.NORMAL)
.connectTimeout(Duration.ofSeconds(20))
.build();

HttpRequest request = HttpRequest.newBuilder().uri(
new URI("https://example.com/large-file")).build();

// The program blocks here until the download is finished
HttpResponse
 response = client.send(request, BodyHandlers.ofFileDownload(
Path.of("."), StandardOpenOption.WRITE, StandardOpenOption.CREATE));

Скачиваемый файл весит пару сотен МБ. В пользовательской системе это занимает около минуты, в течение которой пользователи задаются вопросом, идет ли загрузка или программа зависла.
Чтобы помочь с этим, я хотел бы помочь, пока происходит загрузка, укажите пользователю, какая часть файла была загружена и что загрузка продолжается. Например, печатая точку в терминале после завершения 1 МБ данных или регулярно обновляя индикатор выполнения в графическом интерфейсе.
Как я могу сделать это с помощью HttpClient?

Подробнее здесь: https://stackoverflow.com/questions/772 ... httpclient
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»