Класс 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
См. также:
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 представляет удалённый объект в сети WWW, к которому открыто это соединение.

protected boolean useCaches

Если true, протокол разрешено использовать кэширование, когда это возможно.

Конструкторы

Модификатор Конструктор Описание
protected URLConnection​(URL url)

Конструирует соединение с 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 в виде длинного целого числа.

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()

Загружает карту имен файлов (mimetable) из файла данных.

String getHeaderField​(int n)

Возвращает значение для nго поля заголовка.

String getHeaderField​(String name)

Возвращает значение именованного поля заголовка.

long getHeaderFieldDate​(String name, long Default)

Возвращает значение именованного поля, разобранного как дата.

int getHeaderFieldInt​(String name, int Default)

Возвращает значение именованного поля, разобранного как число.

String getHeaderFieldKey​(int n)

Возвращает ключ для nго поля заголовка.

long getHeaderFieldLong​(String name, long Default)

Возвращает значение именованного поля, разобранного как число.

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)

Устарело.

После получения соответствующего экземпляра 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()

Возвращает String представление этого соединения URL.

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

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

Поля

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, это поле рассматривается в контексте, где имеет смысл разрешить пользовательские взаимодействия, такие как всплывающее окно авторизации. Если значение 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.

Методы

getFileNameMap

public static FileNameMap getFileNameMap()

Загружает карту имён файлов (mimetable) из файла данных. Сначала будет предпринята попытка загрузить таблицу, специфичную для пользователя, определённую свойством "content.types.user.table". Если это не удастся, будет предпринята попытка загрузить стандартную встроенную таблицу.

Возвращает:
FileNameMap
С версии:
1.2
См. также:
setFileNameMap(java.net.FileNameMap)

setFileNameMap

public static void setFileNameMap(FileNameMap map)

Устанавливает FileNameMap.

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

Параметры:
map - устанавливаемый FileNameMap
Исключения:
SecurityException - если существует менеджер безопасности и его метод checkSetFactory не разрешает операцию.
С версии:
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. Время ожидания, равное нулю, интерпретируется как бесконечное время ожидания.

Некоторые нестандартные реализации этого метода могут игнорировать указанное время ожидания. Чтобы увидеть установленное время ожидания соединения, пожалуйста, вызовите 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 в виде длинного целого числа.

Возвращает:
длину содержимого ресурса, на который ссылается 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()

Возвращает неизменяемую карту полей заголовка. Ключи карты — это строки, представляющие имена полей заголовка ответа. Каждое значение карты — это неизменяемый список строк, представляющий соответствующие значения полей.

Возвращает:
карту полей заголовка
С версии:
1.4

getHeaderFieldInt

public int getHeaderFieldInt(String name,
                             int Default)

Возвращает значение именованного поля, разобранное как число.

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

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

getHeaderFieldLong

public long getHeaderFieldLong(String name,
                               long Default)

Возвращает значение именованного поля, разобранное как число.

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

Параметры:
name - имя поля заголовка.
Default - значение по умолчанию.
Возвращает:
значение именованного поля, разобранное как длинное целое число. Значение Default возвращается, если поле отсутствует или имеет неправильный формат.
С версии:
1.7

getHeaderFieldDate

public long getHeaderFieldDate(String name,
                               long Default)

Возвращает значение именованного поля, распарсенного как дата. Результатом является количество миллисекунд с 1 января 1970 года по Гринвичу, представленное именованным полем.

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

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

getHeaderFieldKey

public String getHeaderFieldKey(int n)

Возвращает ключ для n-го поля заголовка. Возвращает null, если количество полей меньше n+1.

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

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, используется механизм ServiceLoader для поиска реализаций ContentHandlerFactory с использованием системного загрузчика классов. Порядок поиска фабрик определяется реализацией, и реализация может кэшировать найденные фабрики. Любое исключение 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

public Permission getPermission()
                         throws IOException

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

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

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

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

getInputStream

public InputStream getInputStream()
                           throws IOException

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

Возвращает:
поток ввода, который считывает данные из этого открытого соединения.
Выбрасывает:
IOException - если при создании потока ввода произошла ошибка ввода-вывода.
UnknownServiceException - если протокол не поддерживает ввод.
См. также:
setReadTimeout(int), getReadTimeout()

getOutputStream

public OutputStream getOutputStream()
                             throws IOException

Возвращает поток вывода, который записывает в это соединение.

Возвращает:
поток вывода, который записывает в это соединение.
Выбрасывает:
IOException - если при создании потока вывода произошла ошибка ввода-вывода.
UnknownServiceException - если протокол не поддерживает вывод.

toString

public String toString()

Возвращает строковое представление этого соединения URL.

Переопределяет:
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)

Установить значение по умолчанию для взаимодействия с пользователем

public static void setDefaultAllowUserInteraction(boolean defaultallowuserinteraction)

Устанавливает значение по умолчанию для поля allowUserInteraction для всех будущих объектов URLConnection на указанное значение.

Параметры:
defaultallowuserinteraction - новое значение.
См. также:
getDefaultAllowUserInteraction()

Получить значение по умолчанию для взаимодействия с пользователем

public static boolean getDefaultAllowUserInteraction()

Возвращает значение по умолчанию для поля allowUserInteraction.

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

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

Установить использование кэша

public void setUseCaches(boolean usecaches)

Устанавливает значение поля useCaches этого объекта URLConnection на указанное значение.

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

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

Получить использование кэша

public boolean getUseCaches()

Возвращает значение поля useCaches этого объекта URLConnection.

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

Установить время последнего изменения

public void setIfModifiedSince(long ifmodifiedsince)

Устанавливает значение поля ifModifiedSince этого объекта URLConnection на указанное значение.

Параметры:
ifmodifiedsince - новое значение.
Исключения:
IllegalStateException - если соединение уже установлено
См. также:
getIfModifiedSince()

Получить время последнего изменения

public long getIfModifiedSince()

Возвращает значение поля ifModifiedSince этого объекта.

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

Получить значение кэширования по умолчанию

public boolean getDefaultUseCaches()

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

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

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

Установить значение кэширования по умолчанию

public void setDefaultUseCaches(boolean defaultusecaches)

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

Параметры:
defaultusecaches - новое значение.
См. также:
getDefaultUseCaches()

Установить значение кэширования по умолчанию для протокола

public static void setDefaultUseCaches(String protocol,
                                       boolean defaultVal)

Устанавливает значение по умолчанию для поля useCaches для указанного протокола. Это значение переопределяет любое значение по умолчанию, установленное с помощью setDefaultUseCaches(boolean) для данного протокола. Последующие вызовы этого метода изменяют настройку и влияют на значение по умолчанию для всех будущих подключений данного протокола. Имя протокола нечувствительно к регистру.

Параметры:
protocol - протокол, для которого устанавливается значение по умолчанию
defaultVal - включено ли кэширование по умолчанию для данного протокола
С момента:
9

Получить значение кэширования по умолчанию для протокола

public static boolean getDefaultUseCaches(String protocol)

Возвращает значение флага useCaches по умолчанию для данного протокола. Если был вызван setDefaultUseCaches(String,boolean) для данного протокола, то возвращается это значение. В противном случае, если был вызван setDefaultUseCaches(boolean), то возвращается это значение. Если ни один из методов не был вызван, то возвращается true. Имя протокола нечувствительно к регистру.

Параметры:
protocol - протокол, для которого требуется значение defaultUseCaches
Возвращает:
значение флага useCaches по умолчанию для данного протокола.
С момента:
9

Установить свойство запроса

public void setRequestProperty(String key,
                               String value)

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

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

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

Добавить свойство запроса

public void addRequestProperty(String key,
                               String value)

Добавляет общее свойство запроса, заданное парой ключ-значение. Этот метод не перезаписывает существующие значения, связанные с тем же ключом.

Параметры:
key - ключевое слово, по которому известен запрос (например, "Accept").
value - значение, связанное с ним.
Исключения:
IllegalStateException - если соединение уже установлено
NullPointerException - если ключ равен null
С момента:
1.4
См. также:
getRequestProperties()

Получить свойство запроса

public String getRequestProperty(String key)

Возвращает значение указанного общего свойства запроса для данного подключения.

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

Получить свойства запроса

public Map<String,List<String>> getRequestProperties()

Возвращает неизменяемую карту общих свойств запроса для этого подключения. Ключи карты — это строки, представляющие имена полей заголовка запроса. Каждое значение карты — это неизменяемый список строк, представляющий соответствующие значения полей.

Возвращает:
карта общих свойств запроса для этого подключения.
Исключения:
IllegalStateException - если соединение уже установлено
С момента:
1.4

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

@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)

Устанавливает фабрику обработчиков содержимого приложения. Её можно вызывать не более одного раза в приложении.

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

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

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

guessContentTypeFromName

public static String guessContentTypeFromName(String fname)

Пытается определить тип содержимого объекта на основе указанной «файловой» компоненты URL. Это удобный метод, который могут использовать подклассы, переопределяющие метод getContentType.

Параметры:
fname - имя файла.
Возвращает:
предположение о типе содержимого объекта на основе имени файла.
См. также:
getContentType()

guessContentTypeFromStream

public static String guessContentTypeFromStream(InputStream is)
                                         throws IOException

Пытается определить тип входного потока на основе символов в начале входного потока. Этот метод может использоваться подклассами, которые переопределяют метод getContentType.

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

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

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/URLConnection.html

Spec-Zone .ru
спецификации, руководства, описания, API