Класс HttpHeaders
public final class HttpHeaders extends Object
Объект HttpHeaders обычно не создается напрямую, а возвращается методом HttpRequest или HttpResponse. Конкретные HTTP-заголовки можно задать для запроса запроса с помощью одного из методов билдера запроса headers.
Методы этого класса (принимающие имя заголовка в виде строки) и Map , возвращаемое методом map, работают без учета регистра при извлечении значения(й) заголовка.
Имя HTTP-заголовка может встречаться более одного раза в протоколе HTTP. Поэтому заголовки представляются именем и списком значений. Каждая встреча заголовка добавляется дословно в соответствующий список имен заголовков без интерпретации его значения. В частности, HttpHeaders не выполняет никакого разделения или объединения строк значений заголовка, разделенных запятыми. Порядок элементов в списке значений заголовка сохраняется при использовании building запроса. Для ответов порядок элементов в списке значений заголовка соответствует порядку их получения. Однако Map , возвращаемое методом map , не гарантирует порядок его записей.
Экземпляры HttpHeaders являются неизменяемыми.
- Since:
- 11
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
List<String> |
allValues |
Возвращает неизменяемый список всех строковых значений заголовка данного заголовка. |
final boolean |
equals |
Проверяет это экземпляр HTTP-заголовков на равенство с данным объектом. |
Optional<String> |
firstValue |
Возвращает Optional, содержащий первое строковое значение заголовка заданного имени (и, возможно, многозначного) заголовка. |
OptionalLong |
firstValueAsLong |
Возвращает OptionalLong, содержащий первое строковое значение заголовка с заданным именем. |
final int |
hashCode() |
Вычисляет код хэша для этого экземпляра HTTP-заголовков. |
Map<String, |
map() |
Возвращает неизменяемый многозначный вид Map этого HttpHeaders. |
static HttpHeaders |
of |
Возвращает HTTP-заголовки из заданной карты. |
String |
toString() |
Возвращает эти HTTP-заголовки в виде строки. |
Подробное описание методов
firstValue
public Optional<String> firstValue(String name)
Optional, содержащий первое строковое значение заголовка заданного имени (и, возможно, многозначного) заголовка. Если заголовок отсутствует, возвращаемый Optional пустой.- Parameters:
-
name- имя заголовка - Returns:
- an
Optional<String>, содержащий первое строковое значение имени заголовка, если оно присутствует
firstValueAsLong
public OptionalLong firstValueAsLong(String name)
OptionalLong, содержащий первое строковое значение заголовка с заданным именем. Если заголовок отсутствует, Optional пуст. Если заголовок присутствует, но содержит значение, которое не может быть проанализировано как значение Long, возникает исключение.- Parameters:
-
name- имя заголовка - Returns:
- an
OptionalLong - Throws:
-
NumberFormatException- если найдено значение, но оно не может быть проанализировано как Long
allValues
public List<String> allValues(String name)
- Parameters:
-
name- имя заголовка - Returns:
- список строковых значений заголовков
map
public Map<String,List<String>> map()
- Returns:
- the Map
equals
public final boolean equals(Object obj)
Если данный объект не является HttpHeaders, этот метод возвращает false. Два HTTP-заголовка равны, если все их соответствующие мапы равны.
Этот метод удовлетворяет общему контракту метода Object.equals.
- Overrides:
-
equalsв классеObject - Parameters:
-
obj- объект, с которым нужно сравнить этот объект - Returns:
-
trueесли, и только если, данный объект являетсяHttpHeaders, равным этому HTTP-заголовку - See Also:
hashCode
public final int hashCode()
Код хэша основан на компонентах HTTP-заголовков map и удовлетворяет общему контракту метода Object.hashCode.
- Overrides:
-
hashCodeв классеObject - Returns:
- значение кода хэша для этих HTTP-заголовков
- See Also:
toString
public String toString()
- Overrides:
-
toStringв классеObject - Returns:
- строка, описывающая HTTP-заголовки
of
public static HttpHeaders of(Map<String,List<String>> headerMap, BiPredicate<String,String> filter)
Имя HTTP-заголовка может встречаться более одного раза в протоколе HTTP. Такие многозначные заголовки должны быть представлены одной записью в заданной карте, значением которой является список, представляющий несколько строковых значений заголовка. Ведущие и завершающие пробелы удаляются из всех строковых значений, извлеченных из заданной карты и ее списков, перед обработкой. Только заголовки, которые после фильтрации содержат как минимум одно, возможно пустое, строковое значение, будут добавлены в HTTP-заголовки.
- API Note:
- Основное назначение этого метода — для фреймворков тестирования. Заголовки для каждого запроса можно задать с помощью одного из методов билдера запроса
HttpRequestheaders. - Parameters:
-
headerMap- карта, содержащая имена и значения заголовков -
filter- фильтр, который может быть использован для проверки каждой пары имя-значение заголовка в заданной карте, чтобы определить, следует ли добавлять ее в HTTP-заголовки - Returns:
- экземпляр HTTP-заголовков, содержащий заданные заголовки
- Throws:
-
NullPointerException- если любой из:headerMap, ключ или значение в заданной карте, или запись в списке значений карты, илиfilter, являетсяnull -
IllegalArgumentException- если заданнаяheaderMapсодержит любые два ключа, равные друг другу (без учета регистра); или если заданная карта содержит ключ, длина которого после обрезки пробелов является0
© 1993, 2021, 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/17/docs/api/java.net.http/java/net/http/HttpHeaders.html