Spec-Zone.ru › OpenJDK 21

Класс 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.

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

Модификатор и тип Метод Описание
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 как целое число.
String getContentType()
Возвращает значение поля заголовка content-type.
long getDate()
Возвращает значение поля заголовка date.
static boolean getDefaultAllowUserInteraction()
Возвращает значение поля allowUserInteraction по умолчанию.
static String getDefaultRequestProperty(String key)
Устарело.
Следует использовать метод getRequestProperty конкретного экземпляра после получения соответствующего экземпляра URLConnection.
boolean getDefaultUseCaches()
Возвращает значение флага URLConnection по умолчанию для useCaches.
static boolean getDefaultUseCaches(String protocol)
Возвращает значение флага useCaches по умолчанию для данного протокола.
boolean getDoInput()
Возвращает значение флага doInput этого URLConnection.
boolean getDoOutput()
Возвращает значение флага doOutput этого URLConnection.
long getExpiration()
Возвращает значение поля заголовка expires.
static FileNameMap getFileNameMap()
Загружает карту имен файлов (mimetable) из файла данных.
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()
Возвращает объект разрешения, представляющий разрешение, необходимое для установления соединения, представленного этим объектом.
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.
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)
Устарело.
Следует использовать метод setRequestProperty конкретного экземпляра после получения соответствующего экземпляра URLConnection.
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()
Возвращает представление String этого соединения URL.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

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

url

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

Значение этого поля можно получить с помощью метода 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, это соединение рассматривается в контексте, где уместно разрешить взаимодействие с пользователем, например, вызов диалогового окна аутентификации. Если 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
Since:
1.2
См. также:
  • setFileNameMap(java.net.FileNameMap)

setFileNameMap

public static void setFileNameMap(FileNameMap map)
Устанавливает FileNameMap.

Если существует менеджер безопасности, этот метод сначала вызывает метод менеджера безопасности checkSetFactory для проверки разрешения на операцию. Это может привести к исключению SecurityException.

Параметры:
map - устанавливаемый FileNameMap
Исключения:
SecurityException - если менеджер безопасности существует и его метод checkSetFactory не разрешает операцию.
Since:
1.2
См. также:
  • SecurityManager.checkSetFactory()
  • getFileNameMap()

connect

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

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

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

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

setConnectTimeout

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

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

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

getConnectTimeout

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

Возвращаемое значение 0 означает, что опция отключена (т.е. таймаут бесконечен).

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

setReadTimeout

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

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

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

getReadTimeout

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

getURL

public URL getURL()
Возвращает значение поля URLConnection в данном объекте URL.
Возвращает:
значение поля URLConnection в данном объекте URL.
См. также:
  • 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. Если фабрика обработчиков содержимого ещё не настроена или метод фабрики createContentHandler возвращает null, используется механизм ServiceLoader для поиска реализаций ContentHandlerFactory с помощью системного загрузчика классов. Порядок поиска фабрик зависит от реализации, и реализация может кэшировать найденные фабрики. Любая ошибка ServiceConfigurationError, Error или RuntimeException, возникающая при вызове createContentHandler, будет передана вызывающей нити. Метод createContentHandler каждой фабрики, если она была создана, вызывается с типом содержимого, пока фабрика не вернёт значение, отличное от null, или все фабрики не будут исчерпаны.
  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

public Permission getPermission() throws IOException
Возвращает объект разрешения, представляющий разрешение, необходимое для создания соединения, представленного этим объектом. Этот метод возвращает null, если для создания соединения не требуется разрешение. По умолчанию этот метод возвращает java.security.AllPermission. Подклассы должны переопределять этот метод и возвращать разрешение, которое лучше всего отражает разрешение, необходимое для подключения к URL. Например, URLConnection , представляющий URL file:, возвращает объект java.io.FilePermission.

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

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

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

getInputStream

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

getOutputStream

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

toString

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

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 на указанное значение.
Parameters:
defaultallowuserinteraction - новое значение.
See Also:
  • getDefaultAllowUserInteraction()

getDefaultAllowUserInteraction

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

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

Returns:
значение по умолчанию для поля allowUserInteraction.
See Also:
  • setDefaultAllowUserInteraction(boolean)

setUseCaches

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

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

Parameters:
usecaches - указывает, разрешено ли кэширование
Throws:
IllegalStateException - если соединение уже установлено
See Also:
  • getUseCaches()

getUseCaches

public boolean getUseCaches()
Возвращает значение поля useCaches данного объекта URLConnection.
Returns:
значение поля useCaches данного объекта URLConnection.
See Also:
  • setUseCaches(boolean)

setIfModifiedSince

public void setIfModifiedSince(long ifmodifiedsince)
Устанавливает значение поля ifModifiedSince данного URLConnection на заданное значение.
Parameters:
ifmodifiedsince - новое значение.
Throws:
IllegalStateException - если соединение уже установлено
See Also:
  • getIfModifiedSince()

getIfModifiedSince

public long getIfModifiedSince()
Возвращает значение поля ifModifiedSince данного объекта.
Returns:
значение поля ifModifiedSince данного объекта.
See Also:
  • setIfModifiedSince(long)

getDefaultUseCaches

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

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

Returns:
значение по умолчанию для флага useCaches объекта URLConnection.
See Also:
  • setDefaultUseCaches(boolean)

setDefaultUseCaches

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

setDefaultUseCaches

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

getDefaultUseCaches

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

setRequestProperty

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

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

Parameters:
key - ключевое слово, по которому известен запрос (например, "Accept").
value - значение, связанное с ним.
Throws:
IllegalStateException - если соединение уже установлено
NullPointerException - если ключ null
See Also:
  • getRequestProperty(java.lang.String)

addRequestProperty

public void addRequestProperty(String key, String value)
Добавляет общее свойство запроса, заданное парой «ключ-значение». Этот метод не перезаписывает существующие значения, связанные с тем же ключом. Этот метод может быть бесполезным, если добавление значения в карту не поддерживается протоколом, используемым в данном подклассе.
Parameters:
key - ключевое слово, по которому известен запрос (например, "Accept").
value - значение, связанное с ним.
Throws:
IllegalStateException - если соединение уже установлено
NullPointerException - если ключ null
Since:
1.4
See Also:
  • getRequestProperties()

getRequestProperty

public String getRequestProperty(String key)
Возвращает значение общего свойства запроса с указанным именем для этого соединения.
Parameters:
key - ключевое слово, по которому известен запрос (например, "Accept").
Returns:
значение общего свойства запроса с указанным именем для этого соединения. Если ключ null, то возвращается null.
Throws:
IllegalStateException - если соединение уже установлено
See Also:
  • setRequestProperty(java.lang.String, java.lang.String)

getRequestProperties

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

УстановитьСвойствоЗапросаПоУмолчанию

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

ПолучитьСвойствоЗапросаПоУмолчанию

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

УстановитьПроизводителяОбработчиковСодержимого

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

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

Если существует менеджер безопасности, этот метод сначала вызывает метод checkSetFactory менеджера безопасности, чтобы убедиться, что операция разрешена. Это может привести к SecurityException.

Параметры:
fac - желаемый производитель.
Исключения:
Error - если производитель уже определен.
SecurityException - если менеджер безопасности существует и его метод checkSetFactory не разрешает операцию.
См. также:
  • ContentHandlerFactory
  • getContent()
  • SecurityManager.checkSetFactory()

ОпределитьТипСодержимогоПоИмени

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

ОпределитьТипСодержимогоПоПотоку

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

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

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

© 1993, 2023, 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/21/docs/api/java.base/java/net/URLConnection.html

Spec-Zone.ru

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