Класс HttpURLConnection
- Прямые известные подклассы:
HttpsURLConnection
public abstract class HttpURLConnection extends URLConnection
Каждый экземпляр HttpURLConnection используется для выполнения одного запроса, но базовое сетевое соединение с HTTP-сервером может быть прозрачно совместно использовано другими экземплярами. Вызов методов close() для потоков InputStream или OutputStream объекта HttpURLConnection после запроса может освободить сетевые ресурсы, связанные с этим экземпляром, но не повлияет на любые общие постоянные соединения. Вызов метода disconnect() может закрыть базовое сокетное соединение, если постоянное соединение в противном случае бездействует в данный момент.
У обработчика HTTP-протокола есть несколько параметров, к которым можно получить доступ через системные свойства. Это охватывает настройки прокси, а также различные другие настройки.
- С тех пор:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected int |
chunkLength |
Длина фрагмента при использовании потокового режима с дроблением кодирования для вывода. |
protected int |
fixedContentLength |
Фиксированная длина содержимого при использовании потокового режима с фиксированной длиной. |
protected long |
fixedContentLengthLong |
Фиксированная длина содержимого при использовании потокового режима с фиксированной длиной. |
static final int |
HTTP_ACCEPTED |
HTTP код состояния 202: Принято. |
static final int |
HTTP_BAD_GATEWAY |
HTTP код состояния 502: Плохой шлюз. |
static final int |
HTTP_BAD_METHOD |
HTTP код состояния 405: Запрещенный метод. |
static final int |
HTTP_BAD_REQUEST |
HTTP код состояния 400: Неправильный запрос. |
static final int |
HTTP_CLIENT_TIMEOUT |
HTTP код состояния 408: Истечение времени ожидания запроса. |
static final int |
HTTP_CONFLICT |
HTTP код состояния 409: Конфликт. |
static final int |
HTTP_CREATED |
HTTP код состояния 201: Создано. |
static final int |
HTTP_ENTITY_TOO_LARGE |
HTTP код состояния 413: Запрашиваемое содержимое слишком велико. |
static final int |
HTTP_FORBIDDEN |
HTTP код состояния 403: Запрещено. |
static final int |
HTTP_GATEWAY_TIMEOUT |
HTTP код состояния 504: Истечение времени ожидания шлюза. |
static final int |
HTTP_GONE |
HTTP код состояния 410: Удалено. |
static final int |
HTTP_INTERNAL_ERROR |
HTTP код состояния 500: Внутренняя ошибка сервера. |
static final int |
HTTP_LENGTH_REQUIRED |
HTTP код состояния 411: Требуется длина. |
static final int |
HTTP_MOVED_PERM |
HTTP код состояния 301: Постоянный перенос. |
static final int |
HTTP_MOVED_TEMP |
HTTP код состояния 302: Временный перенаправление. |
static final int |
HTTP_MULT_CHOICE |
HTTP код состояния 300: Несколько вариантов. |
static final int |
HTTP_NO_CONTENT |
HTTP код состояния 204: Нет содержимого. |
static final int |
HTTP_NOT_ACCEPTABLE |
HTTP код состояния 406: Неприемлемо. |
static final int |
HTTP_NOT_AUTHORITATIVE |
HTTP код состояния 203: Информация, не требующая авторизации. |
static final int |
HTTP_NOT_FOUND |
HTTP код состояния 404: Не найдено. |
static final int |
HTTP_NOT_IMPLEMENTED |
HTTP код состояния 501: Не реализовано. |
static final int |
HTTP_NOT_MODIFIED |
HTTP код состояния 304: Не изменялось. |
static final int |
HTTP_OK |
HTTP код состояния 200: Всё в порядке. |
static final int |
HTTP_PARTIAL |
HTTP код состояния 206: Частичное содержимое. |
static final int |
HTTP_PAYMENT_REQUIRED |
HTTP код состояния 402: Необходим платёж. |
static final int |
HTTP_PRECON_FAILED |
HTTP код состояния 412: Условие не выполнено. |
static final int |
HTTP_PROXY_AUTH |
HTTP код состояния 407: Требуется аутентификация прокси-сервера. |
static final int |
HTTP_REQ_TOO_LONG |
HTTP код состояния 414: Слишком длинный URL. |
static final int |
HTTP_RESET |
HTTP код состояния 205: Сбросить содержимое. |
static final int |
HTTP_SEE_OTHER |
HTTP код состояния 303: Смотрите другое. |
static final int |
HTTP_SERVER_ERROR |
Устаревшее. Неправильное размещение, не должно было существовать. |
static final int |
HTTP_UNAUTHORIZED |
HTTP код состояния 401: Нет доступа. |
static final int |
HTTP_UNAVAILABLE |
HTTP код состояния 503: Сервис недоступен. |
static final int |
HTTP_UNSUPPORTED_TYPE |
HTTP код состояния 415: Неподдерживаемый тип носителя. |
static final int |
HTTP_USE_PROXY |
HTTP код состояния 305: Использовать прокси. |
static final int |
HTTP_VERSION |
HTTP код состояния 505: Неподдерживаемый протокол HTTP. |
protected boolean |
instanceFollowRedirects |
Если true, протокол будет автоматически следовать перенаправлениям. |
protected String |
method |
Метод HTTP (GET, POST, PUT и т. д.). |
protected int |
responseCode |
Объект, представляющий трёхзначный HTTP код состояния. |
protected String |
responseMessage |
Сообщение HTTP ответа. |
Поля, объявленные в классе java.net.URLConnection
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Конструктор для HttpURLConnection. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract void |
disconnect() |
Указывает, что другие запросы к серверу в ближайшем будущем маловероятны. |
InputStream |
getErrorStream() |
Возвращает поток ошибок, если соединение было прервано, но сервер всё же отправил полезные данные. |
static boolean |
getFollowRedirects() |
Возвращает boolean, указывающий, следует ли автоматически перенаправлять HTTP-перенаправления (3xx). |
String |
getHeaderField |
Возвращает значение для n-го поля заголовка. |
String |
getHeaderFieldKey |
Возвращает ключ для n-го поля заголовка. |
boolean |
getInstanceFollowRedirects() |
Возвращает значение поля instanceFollowRedirects этого HttpURLConnection. |
Permission |
getPermission() |
Возвращает объект SocketPermission, представляющий разрешение, необходимое для подключения к целевому хосту и порту. |
String |
getRequestMethod() |
Получить метод запроса. |
int |
getResponseCode() |
Получить код состояния из HTTP-ответа. |
String |
getResponseMessage() |
Получить сообщение HTTP-ответа, если оно есть, возвращенное вместе с кодом ответа от сервера. |
void |
setAuthenticator |
Предоставляет Authenticator для использования при запросе аутентификации через протокол HTTP для этого HttpURLConnection. |
void |
setChunkedStreamingMode |
Этот метод используется для включения потоковой передачи тела HTTP-запроса без внутренней буферизации, когда длина содержимого не известна заранее. |
void |
setFixedLengthStreamingMode |
Этот метод используется для включения потоковой передачи тела HTTP-запроса без внутренней буферизации, когда длина содержимого известна заранее. |
void |
setFixedLengthStreamingMode |
Этот метод используется для включения потоковой передачи тела HTTP-запроса без внутренней буферизации, когда длина содержимого известна заранее. |
static void |
setFollowRedirects |
Устанавливает, следует ли этому классу автоматически перенаправлять HTTP-перенаправления (запросы с кодом ответа 3xx). |
void |
setInstanceFollowRedirects |
Устанавливает, следует ли этому экземпляру HttpURLConnection автоматически перенаправлять HTTP-перенаправления (запросы с кодом ответа 3xx). |
void |
setRequestMethod |
Устанавливает метод для запроса URL, один из: GET POST HEAD OPTIONS PUT DELETE TRACE допустимы, с учетом ограничений протокола. |
abstract boolean |
usingProxy() |
Указывает, проходит ли соединение через прокси. |
Методы, объявленные в классе java.net.URLConnection
addRequestProperty, connect, getAllowUserInteraction, getConnectTimeout, getContent, getContent, getContentEncoding, getContentLength, getContentLengthLong, getContentType, getDate, getDefaultAllowUserInteraction, getDefaultRequestProperty, getDefaultUseCaches, getDefaultUseCaches, getDoInput, getDoOutput, getExpiration, getFileNameMap, getHeaderField, getHeaderFieldDate, getHeaderFieldInt, getHeaderFieldLong, getHeaderFields, getIfModifiedSince, getInputStream, getLastModified, getOutputStream, getReadTimeout, getRequestProperties, getRequestProperty, getURL, getUseCaches, guessContentTypeFromName, guessContentTypeFromStream, setAllowUserInteraction, setConnectTimeout, setContentHandlerFactory, setDefaultAllowUserInteraction, setDefaultRequestProperty, setDefaultUseCaches, setDefaultUseCaches, setDoInput, setDoOutput, setFileNameMap, setIfModifiedSince, setReadTimeout, setRequestProperty, setUseCaches, toString
Подробное описание полей
method
protected String method
chunkLength
protected int chunkLength
-1 означает, что кодировка chunked отключена для вывода.- С версии:
- 1.5
fixedContentLength
protected int fixedContentLength
-1 означает, что потоковый режим с фиксированной длиной отключен для вывода. ПРИМЕЧАНИЕ: fixedContentLengthLong рекомендуется вместо этого поля, так как оно позволяет задавать более длинные длины содержимого.
- С версии:
- 1.5
fixedContentLengthLong
protected long fixedContentLengthLong
-1 означает, что потоковый режим с фиксированной длиной отключен для вывода.- С версии:
- 1.7
responseCode
protected int responseCode
int, представляющее трёхзначный код состояния HTTP. - 1xx: Информационное
- 2xx: Успех
- 3xx: Перенаправление
- 4xx: Ошибка клиента
- 5xx: Ошибка сервера
responseMessage
protected String responseMessage
instanceFollowRedirects
protected boolean instanceFollowRedirects
true, протокол автоматически выполнит перенаправления. Если false, протокол не будет автоматически выполнять перенаправления. Это поле устанавливается методом setInstanceFollowRedirects. Его значение возвращается методом getInstanceFollowRedirects.
Его значение по умолчанию основано на значении статического followRedirects на момент создания HttpURLConnection.
- См. также:
HTTP_OK
public static final int HTTP_OK
- См. также:
HTTP_CREATED
public static final int HTTP_CREATED
- См. также:
HTTP_ACCEPTED
public static final int HTTP_ACCEPTED
- См. также:
HTTP_NOT_AUTHORITATIVE
public static final int HTTP_NOT_AUTHORITATIVE
- См. также:
HTTP_NO_CONTENT
public static final int HTTP_NO_CONTENT
- См. также:
HTTP_RESET
public static final int HTTP_RESET
- См. также:
HTTP_PARTIAL
public static final int HTTP_PARTIAL
- См. также:
HTTP_MULT_CHOICE
public static final int HTTP_MULT_CHOICE
- См. также:
HTTP_MOVED_PERM
public static final int HTTP_MOVED_PERM
- См. также:
HTTP_MOVED_TEMP
public static final int HTTP_MOVED_TEMP
- См. также:
HTTP_SEE_OTHER
public static final int HTTP_SEE_OTHER
- См. также:
HTTP_NOT_MODIFIED
public static final int HTTP_NOT_MODIFIED
- См. также:
HTTP_USE_PROXY
public static final int HTTP_USE_PROXY
- См. также:
HTTP_BAD_REQUEST
public static final int HTTP_BAD_REQUEST
- См. также:
HTTP_UNAUTHORIZED
public static final int HTTP_UNAUTHORIZED
- См. также:
HTTP_PAYMENT_REQUIRED
public static final int HTTP_PAYMENT_REQUIRED
- См. также:
HTTP_FORBIDDEN
public static final int HTTP_FORBIDDEN
- См. также:
HTTP_NOT_FOUND
public static final int HTTP_NOT_FOUND
- См. также:
HTTP_BAD_METHOD
public static final int HTTP_BAD_METHOD
- См. также:
HTTP_NOT_ACCEPTABLE
public static final int HTTP_NOT_ACCEPTABLE
- См. также:
HTTP_PROXY_AUTH
public static final int HTTP_PROXY_AUTH
- См. также:
HTTP_CLIENT_TIMEOUT
public static final int HTTP_CLIENT_TIMEOUT
- См. также:
HTTP_CONFLICT
public static final int HTTP_CONFLICT
- См. также:
HTTP_GONE
public static final int HTTP_GONE
- См. также:
HTTP_LENGTH_REQUIRED
public static final int HTTP_LENGTH_REQUIRED
- См. также:
HTTP_PRECON_FAILED
public static final int HTTP_PRECON_FAILED
- См. также:
HTTP_ENTITY_TOO_LARGE
public static final int HTTP_ENTITY_TOO_LARGE
- См. также:
HTTP_REQ_TOO_LONG
public static final int HTTP_REQ_TOO_LONG
- См. также:
HTTP_UNSUPPORTED_TYPE
public static final int HTTP_UNSUPPORTED_TYPE
- См. также:
HTTP_SERVER_ERROR
@Deprecated public static final int HTTP_SERVER_ERROR
- См. также:
HTTP_INTERNAL_ERROR
public static final int HTTP_INTERNAL_ERROR
- См. также:
HTTP_NOT_IMPLEMENTED
public static final int HTTP_NOT_IMPLEMENTED
- См. также:
HTTP_BAD_GATEWAY
public static final int HTTP_BAD_GATEWAY
- См. также:
HTTP_UNAVAILABLE
public static final int HTTP_UNAVAILABLE
- См. также:
HTTP_GATEWAY_TIMEOUT
public static final int HTTP_GATEWAY_TIMEOUT
- См. также:
HTTP_VERSION
public static final int HTTP_VERSION
- См. также:
Подробное описание конструкторов
HttpURLConnection
protected HttpURLConnection(URL u)
- Параметры:
-
u- URL
Подробное описание методов
setAuthenticator
public void setAuthenticator(Authenticator auth)
Authenticator для использования при запросе аутентификации через протокол HTTP для этого HttpURLConnection. Если аутентификатор не предоставлен, будет использоваться стандартный аутентификатор.- Требования к реализации:
- По умолчанию этот метод безусловно выбрасывает
UnsupportedOperationException. Конкретные реализацииHttpURLConnection, которые поддерживают предоставление аутентификатора для определенногоHttpURLConnectionэкземпляра, должны переопределять этот метод для реализации другого поведения. - Примечание к реализации:
- В зависимости от схем аутентификации, реализация может или не нуждаться в использовании предоставленного аутентификатора для получения пароля. Например, реализация, которая полагается на сторонние библиотеки безопасности, может по-прежнему вызывать стандартный аутентификатор, если эти библиотеки настроены на это. Аналогично, реализация, которая поддерживает прозрачную аутентификацию NTLM, может позволить системе сначала попытать подключиться с использованием учетных данных системного пользователя, прежде чем вызывать предоставленный аутентификатор.
Однако, если аутентификатор явно предоставлен, то базовое подключение может быть повторно использовано только дляHttpURLConnectionэкземпляров, которые разделяют тот жеAuthenticatorэкземпляр, и информация об аутентификации, если кэширована, может быть повторно использована только дляHttpURLConnection, разделяющего тот жеAuthenticator. - Параметры:
-
auth-Authenticator, который должен использоваться этимHttpURLConnection. - Исключения:
-
UnsupportedOperationException- если установка аутентификатора не поддерживается базовой реализацией. -
IllegalStateException- если URLConnection уже подключено. -
NullPointerException- если предоставленныйauthявляетсяnull. - С момента:
- 9
getHeaderFieldKey
public String getHeaderFieldKey(int n)
n-го поля заголовка. Некоторые реализации могут обрабатывать 0-е поле заголовка как специальное, например, как строку состояния, возвращаемую HTTP-сервером. В этом случае, getHeaderField(0) возвращает строку состояния, но getHeaderFieldKey(0) возвращает null.- Overrides:
-
getHeaderFieldKeyв классеURLConnection - Параметры:
-
n- индекс, гдеn >=0. - Возвращает:
- ключ для
n-го поля заголовка илиnull, если ключ не существует.
setFixedLengthStreamingMode
public void setFixedLengthStreamingMode(int contentLength)
Будет выброшено исключение, если приложение попытается записать больше данных, чем указанная длина содержимого, или если приложение закроет OutputStream до записи указанного количества.
При включении потоковой передачи вывода автоматическая обработка аутентификации и перенаправления невозможна. При чтении ответа будет выброшено исключение HttpRetryException, если требуется аутентификация или перенаправление. Это исключение можно запросить для получения подробностей об ошибке.
Этот метод должен быть вызван до подключения URLConnection.
ПРИМЕЧАНИЕ: setFixedLengthStreamingMode(long) рекомендуется вместо этого метода, так как он позволяет устанавливать более большие длины содержимого.
- Параметры:
-
contentLength- Количество байтов, которые будут записаны в OutputStream. - Исключения:
-
IllegalStateException- если URLConnection уже подключен или если уже включен другой режим потоковой передачи. -
IllegalArgumentException- если задана длина содержимого меньше нуля. - С:
- 1.5
- См. также:
setFixedLengthStreamingMode
public void setFixedLengthStreamingMode(long contentLength)
Будет выброшено исключение, если приложение попытается записать больше данных, чем указанная длина содержимого, или если приложение закроет OutputStream до записи указанного количества.
При включении потоковой передачи вывода автоматическая обработка аутентификации и перенаправления невозможна. При чтении ответа будет выброшено исключение HttpRetryException, если требуется аутентификация или перенаправление. Это исключение можно запросить для получения подробностей об ошибке.
Этот метод должен быть вызван до подключения URLConnection.
Длина содержимого, установленная вызовом этого метода, имеет приоритет над любым значением, установленным setFixedLengthStreamingMode(int).
- Параметры:
-
contentLength- Количество байтов, которые будут записаны в OutputStream. - Исключения:
-
IllegalStateException- если URLConnection уже подключен или если уже включен другой режим потоковой передачи. -
IllegalArgumentException- если задана длина содержимого меньше нуля. - С:
- 1.7
setChunkedStreamingMode
public void setChunkedStreamingMode(int chunklen)
При включении потоковой передачи вывода автоматическая обработка аутентификации и перенаправления невозможна. При чтении ответа будет выброшено исключение HttpRetryException, если требуется аутентификация или перенаправление. Это исключение можно запросить для получения подробностей об ошибке.
Этот метод должен быть вызван до подключения URLConnection.
- Параметры:
-
chunklen- Количество байтов, которые будут записаны в каждом блоке, включая заголовок размера блока как шестнадцатеричную строку (минимальный размер 1 байт), два CRLF (4 байта) и минимальную длину полезной нагрузки 1 байт. Если chunklen меньше или равно 5, будет использоваться более высокое значение по умолчанию. - Исключения:
-
IllegalStateException- если URLConnection уже подключен или если уже включен другой режим потоковой передачи. - С:
- 1.5
- См. также:
getHeaderField
public String getHeaderField(int n)
n-го поля заголовка. Некоторые реализации могут обрабатывать 0-е поле заголовка как специальное, например, как строку состояния, возвращаемую HTTP-сервером. Этот метод можно использовать совместно с методом getHeaderFieldKey для итерации по всем заголовкам в сообщении.
- Overrides:
-
getHeaderFieldв классеURLConnection - Параметры:
-
n- индекс, гдеn>=0. - Возвращает:
- значение
n-го поля заголовка илиnull, если значение не существует. - См. также:
setFollowRedirects
public static void setFollowRedirects(boolean set)
- Параметры:
-
set- значение, указывающее, следует ли выполнять HTTP-перенаправления. - См. также:
getFollowRedirects
public static boolean getFollowRedirects()
- Возвращает:
-
true, если HTTP-перенаправления должны выполняться автоматически,falseв противном случае. - См. также:
setInstanceFollowRedirects
public void setInstanceFollowRedirects(boolean followRedirects)
Значение по умолчанию берется из followRedirects, которое по умолчанию равно true.
- Параметры:
-
followRedirects- значение, указывающее, следует ли выполнять HTTP-перенаправления. - С:
- 1.3
- См. также:
getInstanceFollowRedirects
public boolean getInstanceFollowRedirects()
instanceFollowRedirects этого экземпляра HttpURLConnection.- Возвращает:
- значение поля
instanceFollowRedirectsэтого экземпляраHttpURLConnection. - С:
- 1.3
- См. также:
setRequestMethod
public void setRequestMethod(String method) throws ProtocolException
- GET
- POST
- HEAD
- OPTIONS
- PUT
- DELETE
- TRACE
- Параметры:
-
method- метод HTTP - Исключения:
-
ProtocolException- если метод не может быть сброшен или если запрашиваемый метод не действителен для HTTP. - См. также:
getRequestMethod
public String getRequestMethod()
- Возвращает:
- метод HTTP-запроса
- См. также:
getResponseCode
public int getResponseCode() throws IOException
HTTP/1.0 200 OK HTTP/1.0 401 UnauthorizedОн вернет 200 и 401 соответственно. Возвращает -1, если код не может быть определен из ответа (т.е. ответ не является правильным HTTP).
- Возвращает:
- код состояния HTTP или -1
- Исключения:
-
IOException- если произошла ошибка при подключении к серверу.
getResponseMessage
public String getResponseMessage() throws IOException
HTTP/1.0 200 OK HTTP/1.0 404 Not FoundИзвлекает строки "OK" и "Not Found" соответственно. Возвращает null, если ни один из них не может быть определен из ответов (результат не является корректным HTTP).
- Возвращает:
- сообщение HTTP-ответа или
null - Исключения:
-
IOException- если произошла ошибка при подключении к серверу.
disconnect
public abstract void disconnect()
usingProxy
public abstract boolean usingProxy()
true, если известно, что соединение проходит или проходило через прокси, и возвращает false, если соединение никогда не будет проходить через прокси или если использование прокси невозможно определить.- Возвращает:
- логическое значение, указывающее, использует ли соединение прокси.
getPermission
public Permission getPermission() throws IOException
SocketPermission, представляющий разрешение, необходимое для подключения к целевому хосту и порту.- Переопределяет:
-
getPermissionв классеURLConnection - Возвращает:
- объект
SocketPermission, представляющий разрешение, необходимое для подключения к целевому хосту и порту. - Имеет исключения:
-
IOException- если при вычислении разрешения произошла ошибка.
getErrorStream
public InputStream getErrorStream()
Этот метод не вызовет инициирования соединения. Если соединение не было подключено, или сервер не имел ошибки во время подключения, или сервер имел ошибку, но не были отправлены данные об ошибке, этот метод вернёт null. Это значение по умолчанию.
- Возвращает:
- поток ошибок, если таковые имеются, null, если ошибок нет, соединение не подключено или сервер не отправил полезных данных.
© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/net/HttpURLConnection.html