Spec-Zone.ru › OpenJDK 27

Класс URLConnection

java.lang.Object
java.net.URLConnection
Прямые известные подклассы:
HttpURLConnection, JarURLConnection
public abstract class URLConnection extends Object
Абстрактный класс URLConnection является суперклассом всех классов, представляющих канал связи между приложением и URL. Экземпляры этого класса можно использовать как для чтения ресурса, на который ссылается URL, так и для записи в него.

В общем случае создание соединения с URL состоит из нескольких этапов:

  1. Объект соединения создаётся вызовом метода openConnection для URL.
  2. Изменяются параметры настройки и общие свойства запроса.
  3. Устанавливается фактическое соединение с удалённым объектом с помощью метода connect.
  4. Удалённый объект становится доступным. Можно получить доступ к полям заголовка и содержимому удалённого объекта.

Параметры настройки изменяются с помощью следующих методов:

  • setAllowUserInteraction
  • setDoInput
  • setDoOutput
  • setIfModifiedSince
  • setUseCaches

а общие свойства запроса изменяются с помощью метода:

  • setRequestProperty

Значения по умолчанию для параметров AllowUserInteraction и UseCaches можно задать с помощью методов setDefaultAllowUserInteraction и setDefaultUseCaches.

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

После установления соединения с удалённым объектом для доступа к полям заголовка и содержимому используются следующие методы:

  • getContent
  • getHeaderField
  • getInputStream
  • getOutputStream

Некоторые поля заголовка используются часто. Методы:

  • getContentEncoding
  • getContentLength
  • getContentType
  • getDate
  • getExpiration
  • getLastModified

обеспечивают удобный доступ к этим полям. Метод getContentType используется методом getContent для определения типа удалённого объекта; подклассам может быть удобно переопределить метод getContentType.

В обычном случае можно не задавать параметры до установления соединения и общие свойства запроса: для них предусмотрены разумные значения по умолчанию. Для большинства клиентов этого интерфейса интерес представляют только два метода: getInputStream и getContent, которым соответствуют методы-обёртки в классе URL.

Дополнительные сведения о свойствах запроса и полях заголовка соединения http можно найти здесь:

http://www.ietf.org/rfc/rfc2616.txt
Вызов методов close() для InputStream или OutputStream объекта URLConnection после выполнения запроса может освободить сетевые ресурсы, связанные с этим экземпляром, если в спецификациях конкретного протокола не указано иное.
Начиная с:
1.0
Внешние спецификации
  • RFC 2616: Протокол передачи гипертекста — HTTP/1.1
См. также:
  • URL.openConnection()
  • connect()
  • getContent()
  • getContentEncoding()
  • getContentLength()
  • getContentType()
  • getDate()
  • getExpiration()
  • getHeaderField(int)
  • getHeaderField(java.lang.String)
  • getInputStream()
  • getLastModified()
  • getOutputStream()
  • setAllowUserInteraction(boolean)
  • setDefaultUseCaches(boolean)
  • setDoInput(boolean)
  • setDoOutput(boolean)
  • setIfModifiedSince(long)
  • setRequestProperty(java.lang.String, java.lang.String)
  • setUseCaches(boolean)

Краткое описание полей

Модификатор и тип Поле Описание
protected boolean allowUserInteraction
Если true, этот URL рассматривается в контексте, допускающем взаимодействие с пользователем, например отображение диалогового окна аутентификации.
protected boolean connected
Если false, этот объект соединения ещё не установил канал связи с указанным URL.
protected boolean doInput
Эта переменная задаётся методом setDoInput.
protected boolean doOutput
Эта переменная задаётся методом setDoOutput.
protected long ifModifiedSince
Некоторые протоколы позволяют не загружать объект, если он не изменялся после определённого времени.
protected URL url
URL представляет удалённый объект во Всемирной паутине, с которым устанавливается это соединение.
protected boolean useCaches
Если true, протоколу разрешено использовать кэширование при первой возможности.

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

URLConnection(URL url)
Модификатор Конструктор Описание
protected
Создаёт соединение URL с указанным URL.

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

Модификатор и тип Метод Описание
void addRequestProperty(String key, String value)
Добавляет общее свойство запроса, заданное парой ключ-значение.
abstract void connect()
Открывает канал связи с ресурсом, на который ссылается этот URL, если такое соединение ещё не установлено.
boolean getAllowUserInteraction()
Возвращает значение поля allowUserInteraction этого объекта.
int getConnectTimeout()
Возвращает значение тайм-аута подключения.
Object getContent()
Получает содержимое этого соединения URL.
Object getContent(Class<?>[] classes)
Получает содержимое этого соединения URL.
String getContentEncoding()
Возвращает значение поля заголовка content-encoding.
int getContentLength()
Возвращает значение поля заголовка content-length.
long getContentLengthLong()
Возвращает значение поля заголовка content-length как long.
String getContentType()
Возвращает значение поля заголовка content-type.
long getDate()
Возвращает значение поля заголовка date.
static boolean getDefaultAllowUserInteraction()
Возвращает значение по умолчанию поля allowUserInteraction.
static String getDefaultRequestProperty(String key)
Устарело.
После получения соответствующего экземпляра URLConnection следует использовать специфичный для экземпляра метод getRequestProperty.
boolean getDefaultUseCaches()
Возвращает значение по умолчанию флага useCaches объекта URLConnection.
static boolean getDefaultUseCaches(String protocol)
Возвращает значение по умолчанию флага useCaches для указанного протокола.
boolean getDoInput()
Возвращает значение флага doInput этого объекта URLConnection.
boolean getDoOutput()
Возвращает значение флага doOutput этого объекта URLConnection.
long getExpiration()
Возвращает значение поля заголовка expires.
static FileNameMap getFileNameMap()
Загружает карту имён файлов (таблицу MIME-типов) из файла данных.
String getHeaderField(int n)
Возвращает значение поля заголовка с индексом nго.
String getHeaderField(String name)
Возвращает значение именованного поля заголовка.
long getHeaderFieldDate(String name, long defaultValue)
Возвращает значение именованного поля, преобразованное в дату.
int getHeaderFieldInt(String name, int defaultValue)
Возвращает значение именованного поля, преобразованное в число.
String getHeaderFieldKey(int n)
Возвращает ключ поля заголовка с индексом nго.
long getHeaderFieldLong(String name, long defaultValue)
Возвращает значение именованного поля, преобразованное в число.
Map<String, List<String>> getHeaderFields()
Возвращает неизменяемую карту полей заголовка.
long getIfModifiedSince()
Возвращает значение поля ifModifiedSince этого объекта.
InputStream getInputStream()
Возвращает входной поток для чтения из этого открытого соединения.
long getLastModified()
Возвращает значение поля заголовка last-modified.
OutputStream getOutputStream()
Возвращает выходной поток для записи в это соединение.
Permission getPermission()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Разрешения больше нельзя использовать для управления доступом к ресурсам, поскольку диспетчер безопасности больше не поддерживается.
int getReadTimeout()
Возвращает значение тайм-аута чтения. Возвращаемое значение 0 означает, что параметр отключён (то есть тайм-аут не ограничен).
Map<String, List<String>> getRequestProperties()
Возвращает неизменяемую карту общих свойств запроса для этого соединения.
String getRequestProperty(String key)
Возвращает значение указанного общего свойства запроса для этого соединения.
URL getURL()
Возвращает значение поля URL объекта URLConnection.
boolean getUseCaches()
Возвращает значение поля useCaches объекта URLConnection.
static String guessContentTypeFromName(String fname)
Пытается определить тип содержимого объекта на основе компонента URL «file».
static String guessContentTypeFromStream(InputStream is)
Пытается определить тип входного потока на основе символов в его начале.
void setAllowUserInteraction(boolean allowuserinteraction)
Задаёт значение поля allowUserInteraction этого объекта URLConnection.
void setConnectTimeout(int timeout)
Задаёт тайм-аут в миллисекундах, который будет использоваться при открытии канала связи с ресурсом, на который ссылается этот URLConnection.
static void setContentHandlerFactory(ContentHandlerFactory fac)
Задаёт ContentHandlerFactory приложения.
static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)
Задаёт указанное значение по умолчанию для поля allowUserInteraction всех будущих объектов URLConnection.
static void setDefaultRequestProperty(String key, String value)
Устарело.
После получения соответствующего экземпляра URLConnection следует использовать специфичный для экземпляра метод setRequestProperty.
void setDefaultUseCaches(boolean defaultusecaches)
Задаёт указанное значение по умолчанию для поля useCaches.
static void setDefaultUseCaches(String protocol, boolean defaultVal)
Задаёт указанное значение по умолчанию для поля useCaches указанного протокола.
void setDoInput(boolean doinput)
Задаёт указанное значение поля doInput этого объекта URLConnection.
void setDoOutput(boolean dooutput)
Задаёт указанное значение поля doOutput этого объекта URLConnection.
static void setFileNameMap(FileNameMap map)
Задаёт FileNameMap.
void setIfModifiedSince(long ifmodifiedsince)
Задаёт указанное значение поля ifModifiedSince этого объекта URLConnection.
void setReadTimeout(int timeout)
Задаёт тайм-аут чтения в миллисекундах.
void setRequestProperty(String key, String value)
Задаёт общее свойство запроса.
void setUseCaches(boolean usecaches)
Задаёт указанное значение поля useCaches этого объекта URLConnection.
String toString()
Возвращает представление этого соединения URL в виде String.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого объекта Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание полей

url

protected URL url
URL представляет удалённый объект во Всемирной паутине, для соединения с которым открывается это подключение.

Значение этого поля можно получить с помощью метода getURL.

Значением этой переменной по умолчанию является значение аргумента URL в конструкторе URLConnection.

См. также:
  • getURL()
  • url

doInput

protected boolean doInput
Эта переменная задаётся методом setDoInput. Её значение возвращается методом getDoInput.

Подключение URL можно использовать для ввода и/или вывода данных. Установка флага doInput в значение true указывает, что приложение намерено считывать данные из подключения URL.

Значение этого поля по умолчанию — true.

См. также:
  • getDoInput()
  • setDoInput(boolean)

doOutput

protected boolean doOutput
Эта переменная задаётся методом setDoOutput. Её значение возвращается методом getDoOutput.

Подключение URL можно использовать для ввода и/или вывода данных. Установка флага doOutput в значение true указывает, что приложение намерено записывать данные в подключение URL.

Значение этого поля по умолчанию — false.

См. также:
  • getDoOutput()
  • setDoOutput(boolean)

allowUserInteraction

protected boolean allowUserInteraction
Если значение равно true, этот URL рассматривается в контексте, в котором допустимо взаимодействие с пользователем, например отображение диалогового окна аутентификации. Если значение равно false, взаимодействие с пользователем не допускается.

Значение этого поля можно задать методом setAllowUserInteraction. Его значение возвращается методом getAllowUserInteraction. Значением по умолчанию является значение аргумента при последнем вызове метода setDefaultAllowUserInteraction.

См. также:
  • getAllowUserInteraction()
  • setAllowUserInteraction(boolean)
  • setDefaultAllowUserInteraction(boolean)

useCaches

protected boolean useCaches
Если значение равно true, протоколу разрешено использовать кеширование при любой возможности. Если значение равно false, протокол должен всегда пытаться получить актуальную копию объекта.

Это поле задаётся методом setUseCaches. Его значение возвращается методом getUseCaches.

Значением по умолчанию является значение, указанное при последнем вызове метода setDefaultUseCaches.

Настройку по умолчанию можно переопределить для каждого протокола с помощью setDefaultUseCaches(String,boolean).

См. также:
  • setUseCaches(boolean)
  • getUseCaches()
  • setDefaultUseCaches(boolean)

ifModifiedSince

protected long ifModifiedSince
Некоторые протоколы поддерживают пропуск получения объекта, если он не изменялся после определённого момента времени.

Ненулевое значение задаёт время в миллисекундах, прошедших с 1 января 1970 года по Гринвичу. Объект будет получен, только если он был изменён позднее этого времени.

Эта переменная задаётся методом setIfModifiedSince. Её значение возвращается методом getIfModifiedSince.

Значение этого поля по умолчанию — 0, что означает, что получение должно выполняться всегда.

См. также:
  • getIfModifiedSince()
  • setIfModifiedSince(long)

connected

protected boolean connected
Если значение равно false, этот объект подключения ещё не создал канал связи с указанным URL. Если значение равно true, канал связи установлен.

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

URLConnection

protected URLConnection(URL url)
Создаёт подключение URL для указанного URL. Подключение к объекту, на который ссылается URL, не создаётся.
Параметры:
url — указанный URL.

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

getFileNameMap

public static FileNameMap getFileNameMap()
Загружает карту имён файлов (таблицу MIME-типов) из файла данных. Сначала выполняется попытка загрузить таблицу пользователя, заданную свойством "content.types.user.table". Если это не удаётся, предпринимается попытка загрузить встроенную таблицу по умолчанию.
Возвращает:
FileNameMap
Начиная с версии:
1.2
См. также:
  • setFileNameMap(java.net.FileNameMap)

setFileNameMap

public static void setFileNameMap(FileNameMap map)
Задаёт FileNameMap.
Параметры:
map — FileNameMap, который необходимо задать
Начиная с версии:
1.2
См. также:
  • getFileNameMap()

connect

public abstract void connect() throws IOException
Открывает канал связи с ресурсом, на который ссылается этот URL, если такое подключение ещё не было установлено.

Если метод connect вызывается после того, как подключение уже открыто (на что указывает значение true поля connected), вызов игнорируется.

Объекты URLConnection проходят два этапа: сначала они создаются, затем подключаются. После создания и до подключения можно задавать различные параметры (например, doInput и UseCaches). После подключения попытка задать эти параметры приведёт к ошибке. Операции, требующие подключения, например getContentLength, при необходимости выполнят его неявно.

Вызывает исключения:
SocketTimeoutException — если время ожидания истекло до установления подключения
IOException — если при открытии подключения произошла ошибка ввода-вывода.
См. также:
  • connected
  • getConnectTimeout()
  • setConnectTimeout(int)

setConnectTimeout

public void setConnectTimeout(int timeout)
Задаёт указанное значение времени ожидания в миллисекундах, которое будет использоваться при открытии канала связи с ресурсом, на который ссылается этот URLConnection. Если время ожидания истекает до установления подключения, возникает java.net.SocketTimeoutException. Нулевое время ожидания означает бесконечное ожидание.

Некоторые нестандартные реализации этого метода могут игнорировать указанное время ожидания. Чтобы узнать заданное время ожидания подключения, вызовите getConnectTimeout().

Параметры:
timeout — int, задающий время ожидания подключения в миллисекундах
Вызывает исключения:
IllegalArgumentException — если параметр времени ожидания отрицательный
Начиная с версии:
1.5
См. также:
  • getConnectTimeout()
  • connect()

getConnectTimeout

public int getConnectTimeout()
Возвращает заданное время ожидания подключения.

Возвращаемое значение 0 означает, что параметр отключён (то есть время ожидания бесконечно).

Возвращает:
int, указывающее время ожидания подключения в миллисекундах
Начиная с версии:
1.5
См. также:
  • setConnectTimeout(int)
  • connect()

setReadTimeout

public void setReadTimeout(int timeout)
Задаёт время ожидания чтения в миллисекундах. Ненулевое значение задаёт время ожидания при чтении из входного потока после установления подключения к ресурсу. Если время ожидания истекает до появления данных для чтения, возникает java.net.SocketTimeoutException. Нулевое время ожидания означает бесконечное ожидание.

Некоторые нестандартные реализации этого метода игнорируют указанное время ожидания. Чтобы узнать заданное время ожидания чтения, вызовите getReadTimeout().

Параметры:
timeout — int, задающий используемое время ожидания в миллисекундах
Вызывает исключения:
IllegalArgumentException — если параметр времени ожидания отрицательный
Начиная с версии:
1.5
См. также:
  • getReadTimeout()
  • InputStream.read()

getReadTimeout

public int getReadTimeout()
Возвращает заданное время ожидания чтения. Возвращаемое значение 0 означает, что параметр отключён (то есть время ожидания бесконечно).
Возвращает:
int, указывающее время ожидания чтения в миллисекундах
Начиная с версии:
1.5
См. также:
  • setReadTimeout(int)
  • InputStream.read()

getURL

public URL getURL()
Возвращает значение поля URL этого URLConnection.
Возвращает:
значение поля URL этого URLConnection.
См. также:
  • url

getContentLength

public int getContentLength()
Возвращает значение поля заголовка content-length.

Примечание: вместо этого метода рекомендуется использовать getContentLengthLong(), поскольку он возвращает long и поэтому является более переносимым.

Возвращает:
длину содержимого ресурса, на который ссылается URL этого подключения; -1, если длина содержимого неизвестна или превышает Integer.MAX_VALUE.

getContentLengthLong

public long getContentLengthLong()
Возвращает значение поля заголовка content-length в виде числа типа long.
Возвращает:
длину содержимого ресурса, на который ссылается URL этого подключения, или -1, если длина содержимого неизвестна.
Начиная с версии:
1.7

getContentType

public String getContentType()
Возвращает значение поля заголовка content-type.
Возвращает:
тип содержимого ресурса, на который ссылается URL, или null, если он неизвестен.
См. также:
  • getHeaderField(java.lang.String)

getContentEncoding

public String getContentEncoding()
Возвращает значение поля заголовка content-encoding.
Возвращает:
кодировку содержимого ресурса, на который ссылается URL, или null, если она неизвестна.
См. также:
  • getHeaderField(java.lang.String)

getExpiration

public long getExpiration()
Возвращает значение поля заголовка expires.
Возвращает:
дату истечения срока действия ресурса, на который ссылается этот URL, или 0, если она неизвестна. Значение представляет собой количество миллисекунд, прошедших с 1 января 1970 года по Гринвичу.
См. также:
  • getHeaderField(java.lang.String)

getDate

public long getDate()
Возвращает значение поля заголовка date.
Возвращает:
дату отправки ресурса, на который ссылается URL, или 0, если она неизвестна. Возвращаемое значение представляет собой количество миллисекунд, прошедших с 1 января 1970 года по Гринвичу.
См. также:
  • getHeaderField(java.lang.String)

getLastModified

public long getLastModified()
Возвращает значение поля заголовка last-modified. Результат представляет собой количество миллисекунд, прошедших с 1 января 1970 года по Гринвичу.
Возвращает:
дату последнего изменения ресурса, на который ссылается этот URLConnection, или 0, если она неизвестна.
См. также:
  • getHeaderField(java.lang.String)

getHeaderField

public String getHeaderField(String name)
Возвращает значение указанного поля заголовка.

Если подключение устанавливает одно и то же поле заголовка несколько раз, возможно, с разными значениями, возвращается только последнее значение.

Параметры:
name — имя поля заголовка.
Возвращает:
значение указанного поля заголовка или null, если такого поля в заголовке нет.

getHeaderFields

public Map<String, List<String>> getHeaderFields()
Возвращает неизменяемую карту полей заголовка. Ключи карты — это строки, представляющие имена полей заголовка ответа. Каждое значение карты — это неизменяемый список строк, представляющий соответствующие значения поля. Этот метод переопределяется подклассами URLConnection. В реализациях этих методов, если заданному ключу соответствуют несколько значений, они должны возвращаться в порядке добавления с сохранением порядка вставки.
Требования к реализации:
Реализация этого метода по умолчанию всегда возвращает пустую карту.
Возвращает:
карту полей заголовка
Начиная с версии:
1.4

getHeaderFieldInt

public int getHeaderFieldInt(String name, int defaultValue)
Возвращает значение указанного поля, разобранное как число.

Эта форма getHeaderField существует потому, что некоторые типы подключений (например, http-ng) используют предварительно разобранные заголовки. Классы для такого типа подключений могут переопределить этот метод и пропустить разбор.

Параметры:
name — имя поля заголовка.
defaultValue — значение по умолчанию.
Возвращает:
значение указанного поля, разобранное как целое число. Возвращается значение defaultValue, если поле отсутствует или имеет неверный формат.

getHeaderFieldLong

public long getHeaderFieldLong(String name, long defaultValue)
Возвращает значение указанного поля, разобранное как число.

Эта форма getHeaderField существует потому, что некоторые типы подключений (например, http-ng) используют предварительно разобранные заголовки. Классы для такого типа подключений могут переопределить этот метод и пропустить разбор.

Параметры:
name — имя поля заголовка.
defaultValue — значение по умолчанию.
Возвращает:
значение указанного поля, разобранное как число типа long. Возвращается значение defaultValue, если поле отсутствует или имеет неверный формат.
Начиная с версии:
1.7

getHeaderFieldDate

public long getHeaderFieldDate(String name, long defaultValue)
Возвращает значение указанного поля, разобранное как дата. Результат представляет собой количество миллисекунд с 1 января 1970 года по Гринвичу, заданное указанным полем.

Эта форма getHeaderField существует потому, что некоторые типы подключений (например, http-ng) используют предварительно разобранные заголовки. Классы для такого типа подключений могут переопределить этот метод и пропустить разбор.

Параметры:
name — имя поля заголовка.
defaultValue — значение по умолчанию.
Возвращает:
значение поля, разобранное как дата. Возвращается значение аргумента defaultValue, если поле отсутствует или имеет неверный формат.

getHeaderFieldKey

public String getHeaderFieldKey(int n)
Возвращает ключ для n-го поля заголовка. В некоторых реализациях 0 поле заголовка может считаться особым; в этом случае метод getHeaderField(0) может вернуть некоторое значение, а getHeaderFieldKey(0) возвращает null. Для n > 0 возвращается null, если полей меньше n+1.
Параметры:
n — индекс, где n>=0
Возвращает:
ключ для n-го поля заголовка или null, если полей меньше n+1 при n > 0.

getHeaderField

public String getHeaderField(int n)
Возвращает значение n-го поля заголовка. Возвращает null, если полей меньше n+1.

Этот метод можно использовать вместе с методом getHeaderFieldKey для перебора всех заголовков сообщения.

Параметры:
n — индекс, где n>=0
Возвращает:
значение n-го поля заголовка или null, если полей меньше n+1
См. также:
  • getHeaderFieldKey(int)

getContent

public Object getContent() throws IOException
Получает содержимое этого подключения URL.

Сначала этот метод определяет тип содержимого объекта, вызывая метод getContentType. Если приложение встречает этот тип содержимого впервые, для него создаётся обработчик содержимого.

Это выполняется следующим образом:

  1. Если приложение задало экземпляр фабрики обработчиков содержимого с помощью метода setContentHandlerFactory, вызывается метод createContentHandler этого экземпляра с типом содержимого в качестве аргумента; результатом становится обработчик для этого типа содержимого.
  2. Если ContentHandlerFactory ещё не задана или метод createContentHandler фабрики возвращает null, для поиска реализаций ContentHandlerFactory используется механизм ServiceLoader с системным загрузчиком классов. Порядок обнаружения фабрик зависит от реализации; реализация может кэшировать обнаруженные фабрики. Если при этом возникает ServiceConfigurationError, Error или RuntimeException, выброшенное из createContentHandler, оно передаётся вызывающему потоку. Для каждой созданной фабрики вызывается метод createContentHandler с типом содержимого до тех пор, пока фабрика не вернёт ненулевое значение или не будут проверены все фабрики.
  3. Если ничего из этого не помогло, метод пытается загрузить класс обработчика содержимого, как описано в ContentHandler. Если класс не существует или не является подклассом ContentHandler, выбрасывается UnknownServiceException.
Возвращает:
полученный объект. Для определения конкретного типа возвращённого объекта следует использовать оператор instanceof.
Вызывает исключения:
IOException — если при получении содержимого произошла ошибка ввода-вывода.
UnknownServiceException — если протокол не поддерживает этот тип содержимого.
См. также:
  • ContentHandlerFactory.createContentHandler(java.lang.String)
  • getContentType()
  • setContentHandlerFactory(java.net.ContentHandlerFactory)

getContent

public Object getContent(Class<?>[] classes) throws IOException
Получает содержимое этого подключения URL.
Параметры:
classes — массив Class, задающий запрошенные типы
Возвращает:
полученный объект, являющийся первым объектом, соответствующим типу из массива классов. Если ни один из запрошенных типов не поддерживается, возвращается null. Для определения конкретного типа возвращённого объекта следует использовать оператор instanceof.
Вызывает исключения:
IOException — если при получении содержимого произошла ошибка ввода-вывода.
UnknownServiceException — если протокол не поддерживает этот тип содержимого.
Начиная с версии:
1.3
См. также:
  • getContent()
  • ContentHandlerFactory.createContentHandler(java.lang.String)
  • getContent(java.lang.Class[])
  • setContentHandlerFactory(java.net.ContentHandlerFactory)

getPermission

@Deprecated(since="25", forRemoval=true) public Permission getPermission() throws IOException
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Разрешения больше нельзя использовать для управления доступом к ресурсам, поскольку диспетчер безопасности больше не поддерживается.
Возвращает объект разрешения, представляющий разрешение, необходимое для создания подключения, представленного этим объектом. Если для создания подключения разрешение не требуется, метод возвращает null. По умолчанию этот метод возвращает java.security.AllPermission. Подклассам следует переопределить этот метод и вернуть разрешение, наиболее точно соответствующее разрешению, необходимому для подключения к URL. Например, URLConnection, представляющий URL file:, вернёт объект java.io.FilePermission.

Возвращаемое разрешение может зависеть от состояния подключения. Например, разрешение до подключения может отличаться от разрешения после подключения. Так, HTTP-сервер, например foo.com, может перенаправить подключение на другой узел, например bar.com. До подключения возвращаемое подключением разрешение будет представлять разрешение, необходимое для подключения к foo.com, а после подключения возвращаемое разрешение будет относиться к bar.com.

Разрешения обычно используются в двух целях: для защиты кешей объектов, полученных через URLConnection, и для проверки права получателя узнать сведения об определённом URL. В первом случае разрешение следует получать после получения объекта. Например, для HTTP-подключения оно будет представлять разрешение на подключение к узлу, с которого в конечном итоге были получены данные. Во втором случае разрешение следует получить и проверить до подключения.

Возвращает:
объект разрешения, представляющий разрешение, необходимое для создания подключения, представленного этим URLConnection.
Вызывает исключения:
IOException — если для вычисления разрешения требуется сетевой ввод-вывод или ввод-вывод файловой системы и при вычислении возникает исключение.

getInputStream

public InputStream getInputStream() throws IOException
Возвращает входной поток для чтения из этого открытого подключения. При чтении из возвращённого входного потока может возникнуть SocketTimeoutException, если время ожидания чтения истекает до появления данных.
Примечание API:
Объект InputStream, возвращаемый этим методом, может быть обёрткой над InflaterInputStream, метод read(byte[], int, int) которого может изменять любой элемент выходного буфера.
Возвращает:
входной поток для чтения из этого открытого подключения.
Вызывает исключения:
IOException — если при создании входного потока произошла ошибка ввода-вывода.
UnknownServiceException — если протокол не поддерживает ввод.
См. также:
  • setReadTimeout(int)
  • getReadTimeout()

getOutputStream

public OutputStream getOutputStream() throws IOException
Возвращает выходной поток для записи в это подключение.
Возвращает:
выходной поток для записи в это подключение.
Вызывает исключения:
IOException — если при создании выходного потока произошла ошибка ввода-вывода.
UnknownServiceException — если протокол не поддерживает вывод.

toString

public String toString()
Возвращает строковое представление этого подключения URL в формате String.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление этого URLConnection.

setDoInput

public void setDoInput(boolean doinput)
Устанавливает значение поля doInput для этого URLConnection в указанное значение.

URL-подключение можно использовать для ввода и/или вывода. Установите флаг doInput в значение true, если планируете использовать URL-подключение для ввода, и в значение false в противном случае. По умолчанию используется значение true.

Параметры:
doinput — новое значение.
Исключения:
IllegalStateException — если подключение уже установлено
См. также:
  • doInput
  • getDoInput()

getDoInput

public boolean getDoInput()
Возвращает значение флага doInput этого URLConnection.
Возвращает:
значение флага doInput этого URLConnection.
См. также:
  • setDoInput(boolean)

setDoOutput

public void setDoOutput(boolean dooutput)
Устанавливает значение поля doOutput для этого URLConnection в указанное значение.

URL-подключение можно использовать для ввода и/или вывода. Установите флаг doOutput в значение true, если планируете использовать URL-подключение для вывода, и в значение false в противном случае. По умолчанию используется значение false.

Параметры:
dooutput — новое значение.
Исключения:
IllegalStateException — если подключение уже установлено
См. также:
  • getDoOutput()

getDoOutput

public boolean getDoOutput()
Возвращает значение флага doOutput этого URLConnection.
Возвращает:
значение флага doOutput этого URLConnection.
См. также:
  • setDoOutput(boolean)

setAllowUserInteraction

public void setAllowUserInteraction(boolean allowuserinteraction)
Устанавливает значение поля allowUserInteraction этого URLConnection.
Параметры:
allowuserinteraction — новое значение.
Исключения:
IllegalStateException — если подключение уже установлено
См. также:
  • getAllowUserInteraction()

getAllowUserInteraction

public boolean getAllowUserInteraction()
Возвращает значение поля allowUserInteraction этого объекта.
Возвращает:
значение поля allowUserInteraction этого объекта.
См. также:
  • setAllowUserInteraction(boolean)

setDefaultAllowUserInteraction

public static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)
Устанавливает указанное значение поля allowUserInteraction по умолчанию для всех будущих объектов URLConnection.
Параметры:
defaultallowuserinteraction — новое значение.
См. также:
  • getDefaultAllowUserInteraction()

getDefaultAllowUserInteraction

public static boolean getDefaultAllowUserInteraction()
Возвращает значение поля allowUserInteraction по умолчанию.

Это значение по умолчанию является «липким» и входит в статическое состояние всех URLConnection. Этот флаг применяется к следующему и всем последующим создаваемым объектам URLConnection.

Возвращает:
значение поля allowUserInteraction по умолчанию.
См. также:
  • setDefaultAllowUserInteraction(boolean)

setUseCaches

public void setUseCaches(boolean usecaches)
Устанавливает значение поля useCaches этого URLConnection в указанное значение.

Некоторые протоколы кэшируют документы. Иногда важно иметь возможность «обойти» кэши и игнорировать их (например, при нажатии кнопки «Перезагрузить» в браузере). Если для подключения флаг UseCaches имеет значение true, подключению разрешено использовать любые доступные кэши. Если значение false, кэши игнорируются. Значение по умолчанию берётся из defaultUseCaches, по умолчанию равного true. Значение по умолчанию также можно задать отдельно для каждого протокола с помощью метода setDefaultUseCaches(String,boolean).

Параметры:
usecaches — boolean, указывающее, разрешено ли кэширование
Исключения:
IllegalStateException — если подключение уже установлено
См. также:
  • getUseCaches()

getUseCaches

public boolean getUseCaches()
Возвращает значение поля useCaches этого URLConnection.
Возвращает:
значение поля useCaches этого URLConnection.
См. также:
  • setUseCaches(boolean)

setIfModifiedSince

public void setIfModifiedSince(long ifmodifiedsince)
Устанавливает значение поля ifModifiedSince этого URLConnection в указанное значение.
Параметры:
ifmodifiedsince — новое значение.
Исключения:
IllegalStateException — если подключение уже установлено
См. также:
  • getIfModifiedSince()

getIfModifiedSince

public long getIfModifiedSince()
Возвращает значение поля ifModifiedSince этого объекта.
Возвращает:
значение поля ifModifiedSince этого объекта.
См. также:
  • setIfModifiedSince(long)

getDefaultUseCaches

public boolean getDefaultUseCaches()
Возвращает значение флага useCaches объекта URLConnection по умолчанию.

Это значение по умолчанию является «липким» и входит в статическое состояние всех URLConnection. Этот флаг применяется к следующему и всем последующим создаваемым объектам URLConnection. Это значение по умолчанию можно переопределить для отдельного протокола с помощью метода setDefaultUseCaches(String,boolean)

Возвращает:
значение флага useCaches объекта URLConnection по умолчанию.
См. также:
  • setDefaultUseCaches(boolean)

setDefaultUseCaches

public void setDefaultUseCaches(boolean defaultusecaches)
Устанавливает значение поля useCaches по умолчанию в указанное значение. Это значение по умолчанию можно переопределить для отдельного протокола с помощью метода setDefaultUseCaches(String,boolean)
Параметры:
defaultusecaches — новое значение.
См. также:
  • getDefaultUseCaches()

setDefaultUseCaches

public static void setDefaultUseCaches(String protocol, boolean defaultVal)
Устанавливает указанное значение поля useCaches по умолчанию для протокола с заданным именем. Это значение переопределяет все значения по умолчанию, заданные методом setDefaultUseCaches(boolean) для указанного протокола. Последующие вызовы этого метода изменяют настройку и влияют на значение по умолчанию для всех будущих подключений по этому протоколу. Регистр символов в имени протокола не учитывается.
Параметры:
protocol — протокол, для которого задаётся значение по умолчанию
defaultVal — включено ли кэширование по умолчанию для указанного протокола
С версии:
9

getDefaultUseCaches

public static boolean getDefaultUseCaches(String protocol)
Возвращает значение флага useCaches по умолчанию для указанного протокола. Если для указанного протокола был вызван метод setDefaultUseCaches(String,boolean), возвращается заданное им значение. В противном случае, если был вызван метод setDefaultUseCaches(boolean), возвращается заданное им значение. Если не был вызван ни один из этих методов, возвращаемое значение — true. Регистр символов в имени протокола не учитывается.
Параметры:
protocol — протокол, для которого требуется получить настройку defaultUseCaches по умолчанию
Возвращает:
значение флага useCaches по умолчанию для указанного протокола.
С версии:
9

setRequestProperty

public void setRequestProperty(String key, String value)
Устанавливает общее свойство запроса. Если свойство с таким ключом уже существует, его значение заменяется новым.

ПРИМЕЧАНИЕ. Согласно требованиям HTTP, все свойства запроса, для которых допускается несколько значений с одним и тем же ключом, должны использовать формат списка значений, разделённых запятыми. Это позволяет объединить несколько свойств в одно.

Параметры:
key — ключ, по которому определяется запрос (например, «Accept»).
value — связанное с ним значение.
Исключения:
IllegalStateException — если подключение уже установлено
NullPointerException — если ключ равен null
См. также:
  • getRequestProperty(java.lang.String)

addRequestProperty

public void addRequestProperty(String key, String value)
Добавляет общее свойство запроса, заданное парой «ключ — значение». Этот метод не заменяет существующие значения, связанные с тем же ключом. Метод может ничего не делать, если используемый протокол в данной подклассе не поддерживает добавление значения в карту.
Параметры:
key — ключ, по которому определяется запрос (например, «Accept»).
value — связанное с ним значение.
Исключения:
IllegalStateException — если подключение уже установлено
NullPointerException — если ключ равен null
С версии:
1.4
См. также:
  • getRequestProperties()

getRequestProperty

public String getRequestProperty(String key)
Возвращает значение указанного общего свойства запроса для этого подключения.
Параметры:
key — ключ, по которому определяется запрос (например, «Accept»).
Возвращает:
значение указанного общего свойства запроса для этого подключения. Если ключ равен null, возвращается null.
Исключения:
IllegalStateException — если подключение уже установлено
См. также:
  • setRequestProperty(java.lang.String, java.lang.String)

getRequestProperties

public Map<String, List<String>> getRequestProperties()
Возвращает неизменяемую карту общих свойств запроса для этого подключения. Ключи карты — это строки, представляющие имена полей заголовков запроса. Каждое значение карты — это неизменяемый список строк, представляющих соответствующие значения полей. Если для одного ключа с помощью метода addRequestProperty(String, String) добавлено несколько значений, они возвращаются в порядке добавления. Этот метод должен сохранять порядок вставки таких значений. Реализация этого метода по умолчанию сохраняет порядок вставки при добавлении нескольких значений для одного ключа. Значения возвращаются в порядке их добавления.
Возвращает:
карту общих свойств запроса для этого подключения.
Исключения:
IllegalStateException — если подключение уже установлено
С версии:
1.4

setDefaultRequestProperty

@Deprecated public static void setDefaultRequestProperty(String key, String value)
Устарело.
После получения подходящего экземпляра URLConnection следует использовать метод setRequestProperty для конкретного экземпляра. Вызов этого метода не оказывает никакого эффекта.
Устанавливает значение общего свойства запроса по умолчанию. При создании URLConnection эти свойства устанавливаются для него в качестве начальных.
Параметры:
key — ключ, по которому определяется запрос (например, «Accept»).
value — значение, связанное с ключом.
См. также:
  • setRequestProperty(java.lang.String,java.lang.String)
  • getDefaultRequestProperty(java.lang.String)

getDefaultRequestProperty

@Deprecated public static String getDefaultRequestProperty(String key)
Устарело.
После получения подходящего экземпляра URLConnection следует использовать метод getRequestProperty для конкретного экземпляра.
Возвращает значение свойства запроса по умолчанию. Свойства запроса по умолчанию устанавливаются для каждого подключения.
Параметры:
key — ключ, по которому определяется запрос (например, «Accept»).
Возвращает:
значение свойства запроса по умолчанию для указанного ключа.
См. также:
  • getRequestProperty(java.lang.String)
  • setDefaultRequestProperty(java.lang.String, java.lang.String)

setContentHandlerFactory

public static void setContentHandlerFactory(ContentHandlerFactory fac)
Устанавливает ContentHandlerFactory приложения. Приложение может вызвать этот метод не более одного раза.

Экземпляр ContentHandlerFactory используется для создания обработчика содержимого по типу содержимого.

Параметры:
fac — требуемая фабрика.
Исключения:
Error — если фабрика уже определена.
См. также:
  • ContentHandlerFactory
  • getContent()

guessContentTypeFromName

public static String guessContentTypeFromName(String fname)
Пытается определить тип содержимого объекта на основе указанного компонента URL «file». Это вспомогательный метод, который могут использовать подклассы, переопределяющие метод getContentType.
Параметры:
fname — имя файла.
Возвращает:
предполагаемый тип содержимого объекта, определённый по имени файла.
См. также:
  • getContentType()

guessContentTypeFromStream

public static String guessContentTypeFromStream(InputStream is) throws IOException
Пытается определить тип входного потока по символам в его начале. Этот метод могут использовать подклассы, переопределяющие метод getContentType.

В идеале эта процедура не должна требоваться. Однако многие серверы http возвращают неверный тип содержимого; кроме того, существует множество нестандартных расширений. Непосредственная проверка байтов для определения типа содержимого часто даёт более точный результат, чем доверие к типу содержимого, указанному сервером http.

Параметры:
is — входной поток, поддерживающий маркировку.
Возвращает:
предполагаемый тип содержимого или null, если определить его не удалось.
Исключения:
IOException — если при чтении входного потока произошла ошибка ввода-вывода.
См. также:
  • InputStream.mark(int)
  • InputStream.markSupported()
  • getContentType()

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры основных понятий, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, 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.

Spec-Zone.ru

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