РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1131 of 1163 menu

Метод ofFile

Метод ofFile класса HttpResponse.BodyHandlers возвращает обработчик тела ответа BodyHandler<Path>, который записывает входящие данные из тела HTTP-ответа в файл. Первым параметром метод принимает объект Path, указывающий на файл, в который будет сохранено тело ответа. Вторым необязательным параметром можно передать набор опций OpenOption, определяющих способ открытия файла (например, перезапись или дозапись). Если файл не существует, он будет создан. Полученный обработчик передается в метод send или sendAsync объекта HttpClient.

Синтаксис

HttpResponse.BodyHandlers.ofFile(Path file, OpenOption... options)

Пример

Давайте отправим GET-запрос и сохраним тело ответа в файл response.txt:

import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.nio.file.Path; public class Main { public static void main(String[] args) throws Exception { HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://example.com")) .GET() .build(); Path file = Path.of("response.txt"); HttpResponse<Path> response = client.send( request, HttpResponse.BodyHandlers.ofFile(file) ); System.out.println(response.statusCode()); System.out.println(response.body()); } }

Результат выполнения кода:

200 response.txt

Пример

Давайте сохраним тело ответа в файл с дозаписью, передав опцию StandardOpenOption.APPEND:

import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.nio.file.Path; import java.nio.file.StandardOpenOption; public class Main { public static void main(String[] args) throws Exception { HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://example.com")) .GET() .build(); Path file = Path.of("response.txt"); HttpResponse<Path> response = client.send( request, HttpResponse.BodyHandlers.ofFile( file, StandardOpenOption.CREATE, StandardOpenOption.APPEND ) ); System.out.println(response.statusCode()); } }

Результат выполнения кода:

200

Смотрите также

  • класс HttpResponse.BodyHandlers,
    который содержит обработчики тела ответа
  • метод ofString,
    который сохраняет тело ответа в строку
  • метод ofByteArray,
    который сохраняет тело ответа в массив байтов
  • метод send,
    который отправляет синхронный HTTP-запрос
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить