Класс URLConnection
- java.lang.Object
-
- java.net.URLConnection
- Прямые известные подклассы:
-
HttpURLConnection,JarURLConnection
public abstract class URLConnection extends Object
Абстрактный класс URLConnection является суперклассом всех классов, представляющих канал связи между приложением и URL. Экземпляры этого класса могут использоваться как для чтения, так и для записи в ресурс, на который ссылается URL.
В общем случае создание соединения с URL — многоступенчатый процесс:
- Объект соединения создается путем вызова метода
openConnectionна объекте URL. - Настраиваются параметры и общие свойства запроса.
- Фактическое подключение к удаленному объекту осуществляется с помощью метода
connect. - Удаленный объект становится доступным. Можно получить доступ к заголовкам и содержимому удаленного объекта.
Настройка параметров производится с помощью следующих методов:
-
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 | Если |
protected boolean | connected | Если |
protected boolean | doInput | Эта переменная устанавливается методом |
protected boolean | doOutput | Эта переменная устанавливается методом |
protected long | ifModifiedSince | Некоторые протоколы поддерживают пропуск получения объекта, если объект был изменён позже, чем в определённое время. |
protected URL | url | URL представляет удалённый объект в сети WWW, к которому открыто это соединение. |
protected boolean | useCaches | Если |
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | URLConnection(URL url) | Конструирует соединение с URL по указанному URL. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | addRequestProperty(String key,
String value) | Добавляет свойство общего запроса, указанное парой ключ-значение. |
abstract void | connect() | Открывает канал связи с ресурсом, на который ссылается этот URL, если такое соединение еще не установлено. |
boolean | getAllowUserInteraction() | Возвращает значение поля |
int | getConnectTimeout() | Возвращает настройку времени ожидания подключения. |
Object | getContent() | Извлекает содержимое этого соединения URL. |
Object | getContent(Class<?>[] classes) | Извлекает содержимое этого соединения URL. |
String | getContentEncoding() | Возвращает значение поля заголовка |
int | getContentLength() | Возвращает значение поля заголовка |
long | getContentLengthLong() | Возвращает значение поля заголовка |
String | getContentType() | Возвращает значение поля заголовка |
long | getDate() | Возвращает значение поля заголовка |
static boolean | getDefaultAllowUserInteraction() | Возвращает значение по умолчанию поля |
static String | getDefaultRequestProperty(String key) | Устарело. После получения соответствующего экземпляра URLConnection следует использовать метод getRequestProperty, специфичный для экземпляра. |
boolean | getDefaultUseCaches() | Возвращает значение по умолчанию флага |
static boolean | getDefaultUseCaches(String protocol) | Возвращает значение по умолчанию флага |
boolean | getDoInput() | Возвращает значение флага |
boolean | getDoOutput() | Возвращает значение флага |
long | getExpiration() | Возвращает значение поля заголовка |
static FileNameMap | getFileNameMap() | Загружает карту имен файлов (mimetable) из файла данных. |
String | getHeaderField(int n) | Возвращает значение для |
String | getHeaderField(String name) | Возвращает значение именованного поля заголовка. |
long | getHeaderFieldDate(String name,
long Default) | Возвращает значение именованного поля, разобранного как дата. |
int | getHeaderFieldInt(String name,
int Default) | Возвращает значение именованного поля, разобранного как число. |
String | getHeaderFieldKey(int n) | Возвращает ключ для |
long | getHeaderFieldLong(String name,
long Default) | Возвращает значение именованного поля, разобранного как число. |
Map<String,List<String>> | getHeaderFields() | Возвращает неизменяемую карту полей заголовков. |
long | getIfModifiedSince() | Возвращает значение поля |
InputStream | getInputStream() | Возвращает входной поток, который считывает из этого открытого соединения. |
long | getLastModified() | Возвращает значение поля заголовка |
OutputStream | getOutputStream() | Возвращает выходной поток, который записывает в это соединение. |
Permission | getPermission() | Возвращает объект разрешения, представляющий разрешение, необходимое для установления соединения, представленного этим объектом. |
int | getReadTimeout() | Возвращает настройку времени ожидания чтения. Возвращение 0 означает, что параметр отключен (т. е. время ожидания бесконечно). |
Map<String,List<String>> | getRequestProperties() | Возвращает неизменяемую карту общих свойств запроса для этого соединения. |
String | getRequestProperty(String key) | Возвращает значение именованного свойства общего запроса для этого соединения. |
URL | getURL() | Возвращает значение поля |
boolean | getUseCaches() | Возвращает значение поля |
static String | guessContentTypeFromName(String fname) | Пытается определить тип содержимого объекта на основе указанного компонента "файл" URL. |
static String | guessContentTypeFromStream(InputStream is) | Пытается определить тип входного потока на основе символов в начале входного потока. |
void | setAllowUserInteraction(boolean allowuserinteraction) | Устанавливает значение поля |
void | setConnectTimeout(int timeout) | Устанавливает указанное значение времени ожидания, в миллисекундах, которое будет использоваться при открытии канала связи с ресурсом, на который ссылается это URLConnection. |
static void | setContentHandlerFactory(ContentHandlerFactory fac) | Устанавливает |
static void | setDefaultAllowUserInteraction(boolean defaultallowuserinteraction) | Устанавливает значение по умолчанию поля |
static void | setDefaultRequestProperty(String key,
String value) | Устарело. После получения соответствующего экземпляра URLConnection следует использовать метод setRequestProperty, специфичный для экземпляра. |
void | setDefaultUseCaches(boolean defaultusecaches) | Устанавливает значение по умолчанию поля |
static void | setDefaultUseCaches(String protocol,
boolean defaultVal) | Устанавливает значение по умолчанию поля |
void | setDoInput(boolean doinput) | Устанавливает значение поля |
void | setDoOutput(boolean dooutput) | Устанавливает значение поля |
static void | setFileNameMap(FileNameMap map) | Устанавливает FileNameMap. |
void | setIfModifiedSince(long ifmodifiedsince) | Устанавливает значение поля |
void | setReadTimeout(int timeout) | Устанавливает время ожидания чтения на указанное время ожидания, в миллисекундах. |
void | setRequestProperty(String key,
String value) | Устанавливает свойство общего запроса. |
void | setUseCaches(boolean usecaches) | Устанавливает значение поля |
String | toString() | Возвращает |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Поля
url
protected URL url
URL представляет удалённый объект в сети Интернет, к которому открыто это соединение.
Значение этого поля можно получить с помощью метода getURL.
Значение по умолчанию этой переменной равно значению аргумента URL в конструкторе URLConnection.
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).
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. Если это первый раз, когда приложение видит этот тип содержимого, создаётся обработчик содержимого для этого типа.
Это делается следующим образом:
- Если приложение установило экземпляр фабрики обработчиков содержимого, используя метод
setContentHandlerFactory, вызывается методcreateContentHandlerэтого экземпляра с типом содержимого в качестве аргумента; результатом является обработчик содержимого для этого типа. - Если ни один
ContentHandlerFactoryещё не был настроен, или если методcreateContentHandlerфабрики возвращаетnull, используется механизм ServiceLoader для поиска реализаций ContentHandlerFactory с использованием системного загрузчика классов. Порядок поиска фабрик определяется реализацией, и реализация может кэшировать найденные фабрики. Любое исключение ServiceConfigurationError,ErrorилиRuntimeException, брошенное методомcreateContentHandler, если оно возникнет, будет передано потоку вызова. МетодcreateContentHandlerкаждой фабрики, если она была создана, вызывается с типом содержимого, до тех пор, пока фабрика не вернёт ненулевое значение или все фабрики не будут исчерпаны. - В противном случае этот метод пытается загрузить класс обработчика содержимого, как определено в
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.
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) Устанавливает значение по умолчанию для общего свойства запроса. При создании объекта URLConnection он инициализируется этими свойствами.
- Параметры:
-
key- ключевое слово, по которому известен запрос (например, "Accept"). -
value- значение, связанное с ключом. - См. также:
-
setRequestProperty(java.lang.String,java.lang.String),getDefaultRequestProperty(java.lang.String)
Получить свойство запроса по умолчанию
@Deprecated public static String getDefaultRequestProperty(String key)
Возвращает значение свойства запроса по умолчанию. Свойства запроса по умолчанию устанавливаются для каждого подключения.
- Параметры:
-
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