Spec-Zone.ru › OpenJDK 25

Интерфейс HttpResponse.PushPromiseHandler<T>

Параметры типа:
T - тип тела ответа на push-обещание
Охватывающий интерфейс:
HttpResponse<T>
public static interface HttpResponse.PushPromiseHandler<T>
Обработчик push-обещаний.

Push-обещание — это синтетический запрос, отправляемый сервером HTTP/2 при обработке исходного запроса, отправленного клиентом. Сервер определил, возможно, проанализировав исходный запрос, что клиенту, вероятно, понадобится обещанный ресурс, и поэтому отправляет клиенту синтетический push-запрос в виде push-обещания. Клиент может принять или отклонить запрос push-обещания.

Запрос push-обещания может быть получен до момента полного получения тела ответа на исходный запрос, отправленный клиентом. Однако доставка ответа на push-обещание не синхронизируется с доставкой ответа на исходный запрос, отправленный клиентом.

Начиная с:
11

Краткое описание методов

Модификатор и тип Метод Описание
void applyPushPromise(HttpRequest initiatingRequest, HttpRequest pushPromiseRequest, Function<HttpResponse.BodyHandler<T>, CompletableFuture<HttpResponse<T>>> acceptor)
Уведомление о входящем push-обещании.
static <T> HttpResponse.PushPromiseHandler<T> of(Function<HttpRequest, HttpResponse.BodyHandler<T>> pushPromiseHandler, ConcurrentMap<HttpRequest, CompletableFuture<HttpResponse<T>>> pushPromisesMap)
Возвращает обработчик push-обещаний, который добавляет push-обещания и соответствующие им ответы в указанную карту.

Подробное описание методов

applyPushPromise

void applyPushPromise(HttpRequest initiatingRequest, HttpRequest pushPromiseRequest, Function<HttpResponse.BodyHandler<T>, CompletableFuture<HttpResponse<T>>> acceptor)
Уведомление о входящем push-обещании.

Этот метод вызывается для каждого полученного push-обещания до момента полного получения тела ответа на исходный запрос, отправленный клиентом.

Push-обещание принимается путем вызова указанной функции acceptor. Функции acceptor необходимо передать ненулевой объект BodyHandler, который будет использоваться для обработки тела ответа на обещание. Функция-приемник возвращает CompletableFuture, который завершается ответом на обещание.

Если функцию acceptor не удается успешно вызвать, push-обещание отклоняется. Функция acceptor выбрасывает IllegalStateException при повторном вызове.

Параметры:
initiatingRequest - исходный запрос, отправленный клиентом
pushPromiseRequest - синтетический push-запрос
acceptor - функция-приемник, которую необходимо успешно вызвать, чтобы принять push-обещание

of

static <T> HttpResponse.PushPromiseHandler<T> of(Function<HttpRequest, HttpResponse.BodyHandler<T>> pushPromiseHandler, ConcurrentMap<HttpRequest, CompletableFuture<HttpResponse<T>>> pushPromisesMap)
Возвращает обработчик push-обещаний, который добавляет push-обещания и соответствующие им ответы в указанную карту.

Для каждого принятого push-обещания в указанную карту добавляется запись. Ключом записи является push-запрос, а значением — CompletableFuture, завершающийся ответом, соответствующим push-запросу, указанному в качестве ключа. Push-запрос отклоняется / отменяется, если в карте уже есть запись с ключом, равным ему. Push-запрос отклоняется / отменяется, если его источник отличается от источника исходного запроса.

Записи добавляются в указанную карту при первой практической возможности после получения и принятия push-обещания. Это позволяет коду, использующему такую карту в качестве кэша, определить, отправил ли сервер push-обещание, и избежать, возможно, ненужных запросов.

Доставка ответа на push-обещание не синхронизируется с доставкой ответа на исходный запрос, отправленный клиентом. Однако после полного получения тела ответа на исходный запрос, отправленный клиентом, карта гарантированно будет полностью заполнена, то есть новые записи добавляться не будут. Отдельные объекты CompletableFutures, содержащиеся в карте, к этому моменту могут быть как завершены, так и не завершены.

Параметры типа:
T - тип тела ответа на push-обещание
Параметры:
pushPromiseHandler - обработчик тела, используемый для push-обещаний
pushPromisesMap - карта для накопления push-обещаний
Возвращает:
обработчик push-обещаний

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.net.http/java/net/http/HttpResponse.PushPromiseHandler.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API