Класс HttpExchange
- java.lang.Object
-
- javax.xml.ws.spi.http.HttpExchange
public abstract class HttpExchange extends Object
Этот класс инкапсулирует HTTP-запрос, полученный от клиента, и ответ, который должен быть сгенерирован в рамках одного обмена. Он предоставляет методы для проверки запроса от клиента и для построения и отправки ответа.
Объект HttpExchange должен быть закрыт, чтобы освободить или повторно использовать базовые ресурсы. Последствия отказа от закрытия обмена не определены.
- Since:
- JAX-WS 2.2
Поля
| Модификатор и тип | Поле и описание |
|---|---|
static String |
REQUEST_CIPHER_SUITE Стандартное свойство: значение набора шифров, когда запрос получен по протоколу HTTPS |
static String |
REQUEST_KEY_SIZE Стандартное свойство: размер в битах алгоритма, когда запрос получен по протоколу HTTPS |
static String |
REQUEST_X509CERTIFICATE Стандартное свойство: сертификат SSL, если таковой имеется, связанный с запросом |
Конструкторы
| Конструктор и описание |
|---|
HttpExchange() |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
abstract void |
addResponseHeader(String name,
String value) Добавляет заголовок ответа с заданным именем и значением. |
abstract void |
close() Это необходимо для завершения обмена. |
abstract Object |
getAttribute(String name) Возвращает атрибут, связанный с этим |
abstract Set<String> |
getAttributeNames() Возвращает все имена атрибутов, связанные с этим |
abstract String |
getContextPath() Возвращает контекстную часть пути всех конечных точек в приложении. |
abstract HttpContext |
getHttpContext() Возвращает |
abstract InetSocketAddress |
getLocalAddress() Возвращает неразрешенный локальный адрес, на котором был получен запрос. |
abstract String |
getPathInfo() Возвращает дополнительную информацию о пути, которая следует за путем веб-службы, но предшествует строке запроса в URI запроса и будет начинаться с символа "/". |
abstract String |
getProtocol() Возвращает строку протокола из запроса в формате протокол/majorVersion.minorVersion. |
abstract String |
getQueryString() Возвращает строку запроса, которая содержится в URI запроса после пути. |
abstract InetSocketAddress |
getRemoteAddress() Возвращает неразрешенный адрес удаленного сущности, вызвавшей этот запрос. |
abstract InputStream |
getRequestBody() Возвращает поток, из которого можно считать тело запроса. |
abstract String |
getRequestHeader(String name) Возвращает значение указанного заголовка запроса. |
abstract Map<String,List<String>> |
getRequestHeaders() Возвращает неизменяемую карту, содержащую HTTP-заголовки, включенные в этот запрос. |
abstract String |
getRequestMethod() Получить HTTP-метод запроса |
abstract String |
getRequestURI() Возвращает часть URI запроса от имени протокола до строки запроса в первой строке HTTP-запроса. |
abstract OutputStream |
getResponseBody() Возвращает поток, в который необходимо записать тело ответа. |
abstract Map<String,List<String>> |
getResponseHeaders() Возвращает изменяемую карту, в которую можно сохранить HTTP-заголовки ответа, которые будут переданы в рамках этого ответа. |
abstract String |
getScheme() Возвращает имя схемы, используемой для выполнения этого запроса, например: http или https. |
abstract Principal |
getUserPrincipal() Возвращает |
abstract boolean |
isUserInRole(String role) Указывает, включен ли аутентифицированный пользователь в указанную логическую "роль". |
abstract void |
setStatus(int status) Устанавливает код HTTP-статуса для ответа. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
REQUEST_CIPHER_SUITE
public static final String REQUEST_CIPHER_SUITE
Стандартное свойство: значение шифра, используемое при получении запроса по протоколу HTTPS
Тип: Строка
- См. также:
- Значения константных полей
REQUEST_KEY_SIZE
public static final String REQUEST_KEY_SIZE
Стандартное свойство: размер алгоритма в битах при получении запроса по протоколу HTTPS
Тип: Целое число
- См. также:
- Значения константных полей
REQUEST_X509CERTIFICATE
public static final String REQUEST_X509CERTIFICATE
Стандартное свойство: сертификат SSL, если таковой имеется, связанный с запросом
Тип: java.security.cert.X509Certificate[] Порядок в этом массиве определен как возрастающий порядок доверия. Первый сертификат в цепочке — тот, который установлен клиентом, следующий — тот, который используется для аутентификации первого, и так далее.
- См. также:
- Значения константных полей
Конструкторы
HttpExchange
public HttpExchange()
Методы
getRequestHeaders
public abstract Map<String,List<String>> getRequestHeaders()
Возвращает неизменяемую карту, содержащую HTTP-заголовки, включённые в этот запрос. Ключами в этой карте являются имена заголовков, а значениями — список строк, содержащих каждое значение, которое было включено (либо для заголовка, указанного несколько раз, либо для заголовка, принимающего список значений, разделённых запятыми, в одной строке). В обоих случаях значения для имени заголовка будут представлены в том порядке, в котором они были включены в запрос.
Ключи в карте нечувствительны к регистру.
- Возвращает:
- неизменяемую карту, которая может использоваться для доступа к заголовкам запроса
getRequestHeader
public abstract String getRequestHeader(String name)
Возвращает значение указанного заголовка запроса. Если запрос не включал заголовок указанного имени, этот метод возвращает null. Если существует несколько заголовков с одинаковым именем, этот метод возвращает первый заголовок в запросе. Имя заголовка нечувствительно к регистру. Это удобный метод для получения заголовка (вместо использования getRequestHeaders()).
- Параметры:
-
name- имя заголовка запроса - Возвращает:
- возвращает значение запрошенного заголовка или null, если запрос не содержит заголовка с таким именем
getResponseHeaders
public abstract Map<String,List<String>> getResponseHeaders()
Возвращает изменяемую карту, в которую можно сохранить HTTP-заголовки ответа, которые будут переданы как часть этого ответа. Ключами в карте являются имена заголовков, а значениями — список строк, содержащих каждое значение, которое должно быть включено несколько раз (в порядке их включения).
Ключи в карте нечувствительны к регистру.
- Возвращает:
- изменяемую карту, которая может быть использована для установки заголовков ответа.
addResponseHeader
public abstract void addResponseHeader(String name,
String value) Добавляет заголовок ответа с заданным именем и значением. Этот метод позволяет заголовку ответа иметь несколько значений. Это удобный метод для добавления заголовка ответа (вместо использования getResponseHeaders()).
- Параметры:
-
name- имя заголовка -
value- дополнительное значение заголовка. Если оно содержит строку байтов, оно должно быть закодировано в соответствии с RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt) - См. также:
getResponseHeaders()
getRequestURI
public abstract String getRequestURI()
Возвращает часть URI запроса от имени протокола до строки запроса в первой строке HTTP-запроса. Контейнер не декодирует эту строку.
- Возвращает:
- URI запроса
getContextPath
public abstract String getContextPath()
Возвращает контекстную директорию всех точек входа в приложении. Этот путь — часть URI запроса, которая указывает контекст запроса. Контекстная директория всегда стоит первой в URI запроса. Путь начинается с символа "/" но не заканчивается на нем. Если этот метод возвращает "", запрос относится к контексту по умолчанию. Контейнер не декодирует эту строку.
Контекстная директория используется при вычислении адреса точки входа. См. HttpContext.getPath()
- Возвращает:
- контекстная директория всех точек входа в приложении
- См. также:
HttpContext.getPath()
getRequestMethod
public abstract String getRequestMethod()
Получить метод HTTP-запроса
- Возвращает:
- метод запроса
getHttpContext
public abstract HttpContext getHttpContext()
Возвращает HttpContext для этого обмена. Контейнер сопоставляет запрос с соответствующим HttpContext точки входа.
- Возвращает:
- HttpContext для этого обмена
close
public abstract void close()
throws IOException Это необходимо вызвать для завершения обмена. Контейнер позаботится о закрытии потоков запроса и ответа. Это необходимо сделать, чтобы контейнер мог освободить или повторно использовать базовые ресурсы.
- Выбрасывает:
-
IOException- если любая ошибка ввода/вывода
getRequestBody
public abstract InputStream getRequestBody()
throws IOException Возвращает поток, из которого можно считать тело запроса. Несколько вызовов этого метода вернут один и тот же поток.
- Возвращает:
- поток, из которого можно считать тело запроса.
- Выбрасывает:
-
IOException- если любая ошибка ввода/вывода при обработке запроса
getResponseBody
public abstract OutputStream getResponseBody()
throws IOException Возвращает поток, в который необходимо записать тело ответа. setStatus(int)) необходимо вызвать до вызова этого метода. Несколько вызовов этого метода (для одного и того же обмена) вернут один и тот же поток.
- Возвращает:
- поток, в который записывается тело ответа
- Выбрасывает:
-
IOException- если любая ошибка ввода/вывода при обработке ответа
setStatus
public abstract void setStatus(int status)
Устанавливает код HTTP-статуса для ответа.
Этот метод должен быть вызван до вызова getResponseBody().
- Параметры:
-
status- код ответа для отправки - См. также:
getResponseBody()
getRemoteAddress
public abstract InetSocketAddress getRemoteAddress()
Возвращает неразрешённый адрес удалённого субъекта, вызвавшего этот запрос.
- Возвращает:
- InetSocketAddress вызывающего лица
getLocalAddress
public abstract InetSocketAddress getLocalAddress()
Возвращает неразрешённый локальный адрес, на котором был получен запрос.
- Возвращает:
- InetSocketAddress локального интерфейса
getProtocol
public abstract String getProtocol()
Возвращает строку протокола из запроса в формате протокол/majorVersion.minorVersion. Например, "HTTP/1.1"
- Возвращает:
- строка протокола из запроса
getScheme
public abstract String getScheme()
Возвращает имя схемы, используемой для данного запроса, например: http или https.
- Возвращает:
- имя схемы, используемой для данного запроса
getPathInfo
public abstract String getPathInfo()
Возвращает дополнительную информацию о пути, которая следует за путём веб-сервиса, но предшествует строке запроса в URI запроса и начнётся с символа "/".
Это может использоваться для MessageContext.PATH_INFO
- Возвращает:
- декодированная дополнительная информация о пути веб-сервиса. Это путь, следующий за путём веб-сервиса, но предшествующий строке запроса в URI запроса
nullесли в запросе URI нет дополнительного пути
getQueryString
public abstract String getQueryString()
Возвращает строку запроса, содержащуюся в URI запроса после пути.
Это может использоваться для MessageContext.QUERY_STRING
- Возвращает:
- недекодированная строка запроса URI запроса, или
nullесли в URI запроса её нет
getAttribute
public abstract Object getAttribute(String name)
Возвращает атрибут, связанный с этим HttpExchange. Обработчики и точки входа JAX-WS могут получить доступ к атрибуту с помощью MessageContext.
Контейнеры сервлетов должны предоставить MessageContext.SERVLET_CONTEXT, MessageContext.SERVLET_REQUEST и MessageContext.SERVLET_RESPONSE в качестве атрибутов.
Если запрос был получен контейнером с использованием HTTPS, следующая информация должна быть представлена в качестве атрибутов. Эти атрибуты — REQUEST_CIPHER_SUITE и REQUEST_KEY_SIZE. Если с запросом связан сертификат SSL, он должен быть представлен с помощью REQUEST_X509CERTIFICATE
- Параметры:
-
name- имя атрибута - Возвращает:
- значение атрибута или
nullесли атрибута нет
getAttributeNames
public abstract Set<String> getAttributeNames()
Возвращает все имена атрибутов, связанные с этим HttpExchange.
- Возвращает:
- множество всех имён атрибутов
- См. также:
getAttribute(String)
getUserPrincipal
public abstract Principal getUserPrincipal()
Возвращает Principal, представляющий аутентифицированного пользователя для этого HttpExchange.
- Возвращает:
- Principal для аутентифицированного пользователя, или
nullесли пользователь не аутентифицирован
isUserInRole
public abstract boolean isUserInRole(String role)
Указывает, включён ли аутентифицированный пользователь в указанную логическую "роль".
- Параметры:
-
role- указывает имя роли - Возвращает:
-
trueесли пользователь, делающий этот запрос, принадлежит к заданной роли
© 1993, 2020, 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.