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

Класс HttpResponse

Класс HttpResponse из пакета java.net.http описывает HTTP-ответ, полученный от сервера. Экземпляр этого класса не создается напрямую - его возвращает метод send класса HttpClient после выполнения запроса. Класс является generic-классом: параметр T задает тип тела ответа, который определяется выбранным обработчиком тела BodyHandler. С помощью методов этого класса можно получить код состояния (statusCode), тело ответа (body), заголовки (headers), URI запроса (uri) и версию HTTP-протокола (version).

Синтаксис

HttpResponse<T> response = client.send(request, handler);

Здесь T - тип тела ответа, client - объект HttpClient, request - объект HttpRequest, а handler - обработчик тела, например BodyHandlers.ofString.

Пример

Выполним GET-запрос и выведем код состояния и тело ответа:

import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; 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(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode()); System.out.println(response.body()); } }

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

"200" "<html>...</html>"

Пример

Получим заголовки и версию HTTP-протокола ответа:

import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; 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(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.version()); System.out.println(response.headers().map()); } }

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

"HTTP_2" "{content-type=[text/html; charset=UTF-8]}"

Пример

Получим URI, по которому был выполнен запрос:

import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; 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(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.uri()); } }

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

"https://example.com"

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

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