public abstract class URLConnection
extends Object
Абстрактный класс URLConnection суперкласс всех классов, которые представляют линию связи между приложением и URL. Экземпляры этого класса могут использоваться и чтобы читать из и записать в ресурс, на который ссылается URL. Вообще, создание соединения с URL является многошаговым процессом:
openConnection()
connect()
Управляйте параметрами, которые влияют на соединение с удаленным ресурсом.
Взаимодействуйте с ресурсом; поля заголовка запроса и содержание.
----------------------------> время
Объект соединения создается, вызывая openConnection метод на URL.
Параметрами установки и общими свойствами запроса управляют.
Фактическое соединение с удаленным объектом делается, используя connect метод.
Удаленный объект становится доступным. К полям заголовка и содержанию удаленного объекта можно получить доступ.
Параметры установки изменяются, используя следующие методы:
setAllowUserInteraction
setDoInput
setDoOutput
setIfModifiedSince
setUseCaches
и общие свойства запроса изменяются, используя метод:
setRequestProperty
Значения по умолчанию для AllowUserInteraction и UseCaches параметры могут быть установлены, используя методы setDefaultAllowUserInteraction и setDefaultUseCaches.
Каждый из вышеупомянутых set у методов есть соответствие get метод, чтобы получить значение параметра или общего свойства запроса. Определенные параметры и общие свойства запроса, которые применимы, являются определенным протоколом.
Следующие методы используются, чтобы получить доступ к полям заголовка и содержанию после того, как соединение делается к удаленному объекту:
getContent
getHeaderField
getInputStream
getOutputStream
К определенным полям заголовка часто получают доступ. Методы:
getContentEncoding
getContentLength
getContentType
getDate
getExpiration
getLastModifed
обеспечьте удобный доступ к этим полям. getContentType метод используется getContent метод, чтобы определить тип удаленного объекта; подклассы могут счесть удобным переопределить getContentType метод.
В общем падеже могут быть проигнорированы все параметры перед соединением и общие свойства запроса: параметры перед соединением и значение по умолчанию свойств запроса к заметным значениям. Для большинства клиентов этого интерфейса есть только два интересных метода: getInputStream и getContent, которые зеркально отражаются в URL класс методами удобства.
Больше информации о свойствах запроса и полях заголовка http соединение может быть найдено в:
Отметьте о fileNameMap: В версиях до JDK 1.1.6, поля fileNameMap из URLConnection было общедоступно. В JDK 1.1.6 и позже, fileNameMap является частным; средство доступа и мутаторные методы getFileNameMap и setFileNameMap добавляются, чтобы получить доступ к этому. Это изменение также описывается на странице Совместимости. Вызывая методы close() на InputStream или OutputStreamURLConnection после того, как запрос может освободить сетевые ресурсы, связанные с этим экземпляром, если определенные спецификации протокола не определяют различные поведения для этого.
Если true, это URL исследуется в контексте, в котором имеет смысл позволять взаимодействие с пользователем, такое как появление диалогового окна аутентификации.
Устанавливает указанное значение тайм-аута, в миллисекундах, чтобы использоваться, открывая линию связи для ресурса, на который ссылается этот URLConnection.
Экземпляр определенный setRequestProperty метод должен использоваться после соответствующего экземпляра URLConnection, получается. Вызов этого метода не будет иметь никакого эффекта.
Эта переменная устанавливается setDoInput метод. Его значение возвращается getDoInput метод.
Соединение URL может использоваться для ввода и/или выведено. Установка doInput флаг к true указывает, что приложение намеревается считать данные из соединения URL.
Эта переменная устанавливается setDoOutput метод. Его значение возвращается getDoOutput метод.
Соединение URL может использоваться для ввода и/или выведено. Установка doOutput флаг к true указывает, что приложение намеревается записать данные в соединение URL.
Если true, это URL исследуется в контексте, в котором имеет смысл позволять взаимодействие с пользователем, такое как появление диалогового окна аутентификации. Если false, тогда никакое взаимодействие с пользователем не позволяется.
Значение этого поля может быть установлено setAllowUserInteraction метод. Его значение возвращается getAllowUserInteraction метод. Его значение по умолчанию является значением параметра в последнем вызове setDefaultAllowUserInteraction метод.
Если true, протоколу позволяют использовать кэширование всякий раз, когда это может. Если false, протокол должен всегда пытаться получить новую копию объекта.
Это поле устанавливается setUseCaches метод. Его значение возвращается getUseCaches метод.
Его значение по умолчанию является значением, данным в последнем вызове setDefaultUseCaches метод.
Карта имени файла загрузок (mimetable) от файла данных. Это сначала попытается загрузить специфичную для пользователя таблицу, определенную "content.types.user.table" свойством. Если это перестало работать, это пытается загрузить встроенную таблицу по умолчанию в lib/content-types.properties под java домой.
public static void setFileNameMap(FileNameMap map)
Устанавливает FileNameMap.
Если есть менеджер безопасности, этот метод первые вызовы менеджер безопасности checkSetFactory метод, чтобы гарантировать работу позволяется. Это могло привести к SecurityException.
Параметры:
map - FileNameMap, который будет установлен
Броски:
SecurityException - если менеджер безопасности существует и checkSetFactory метод не позволяет работу.
Открывает линию связи для ресурса, на который ссылается этот URL, если такое соединение не было уже установлено.
Если connect метод вызывают, когда соединение было уже открыто (обозначенный connected поле, имеющее значение true), вызов игнорируется.
Объекты URLConnection проходят через две фазы: сначала они создаются, тогда они соединяются. Будучи созданным, и прежде, чем быть соединенным, различные варианты могут быть определены (например, doInput и UseCaches). После соединения это - ошибка попытаться установить их. Операции, которые зависят от того, чтобы быть соединенным, как getContentLength, неявно выполнят соединение в случае необходимости.
Броски:
SocketTimeoutException - если тайм-аут истекает прежде, чем соединение может быть установлено
IOException - если ошибка ввода-вывода происходит, открывая соединение.
Устанавливает указанное значение тайм-аута, в миллисекундах, чтобы использоваться, открывая линию связи для ресурса, на который ссылается этот URLConnection. Если тайм-аут истекает прежде, чем соединение может быть установлено, java.net. SocketTimeoutException повышается. Тайм-аут нуля интерпретируется как бесконечный тайм-аут.
Некоторый нестандартный implmentation этого метода может проигнорировать указанный тайм-аут. Чтобы видеть набор тайм-аута подключения, пожалуйста, вызовите getConnectTimeout ().
Параметры:
timeout - int это определяет значение тайм-аута подключения в миллисекундах
Устанавливает тайм-аут чтения в указанный тайм-аут, в миллисекундах. Ненулевое значение определяет тайм-аут, читая из Входного потока, когда соединение устанавливается к ресурсу. Если тайм-аут истекает прежде, чем будут доступные данные для чтения, java.net. SocketTimeoutException повышается. Тайм-аут нуля интерпретируется как бесконечный тайм-аут.
Некоторая нестандартная реализация этого метода игнорирует указанный тайм-аут. Чтобы видеть набор тайм-аута чтения, пожалуйста, вызовите getReadTimeout ().
Параметры:
timeout - int это определяет значение тайм-аута, которое будет использоваться в миллисекундах
Возвращает значение content-length поле заголовка.
Отметьте: getContentLengthLong() должен быть предпочтен по этому методу, так как он возвращает a long вместо этого и поэтому более переносимо.
Возвраты:
длина контента ресурса, что ссылки URL этого соединения, -1 если длина контента не известна, или если длина контента больше чем Целое число. MAX_VALUE.
getContentLengthLong
public long getContentLengthLong()
Возвращает значение content-length поле заголовка как длинное.
Возвраты:
длина контента ресурса, что ссылки URL этого соединения, или -1 если длина контента не известна.
Если обращено соединение, которое устанавливает тот же самый заголовок многократно с возможно различными значениями, только последнее значение, возвращается.
Параметры:
name - имя поля заголовка.
Возвраты:
значение именованного поля заголовка, или null если нет такого поля в заголовке.
Возвращает неподдающуюся изменению Карту полей заголовка. Ключи Map являются Строками, которые представляют имена полей заголовка ответа. Каждым значением Карты является неподдающийся изменению Список Строк, который представляет соответствующие значения полей.
Возвраты:
Карта полей заголовка
С тех пор:
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 значение возвращается, если поле отсутствует или уродливое.
С тех пор:
7.0
getHeaderFieldDate
public long getHeaderFieldDate(String name,
long Default)
Возвращает значение именованного поля, проанализированного как дата. Результатом является число миллисекунд с 1 января 1970 GMT, представленный именованным полем.
Эта форма getHeaderField существует потому что некоторые типы подключения (например, http-ng) предварительно проанализировали заголовки. Классы для того типа подключения могут переопределить этот метод и закоротить парсинг.
Параметры:
name - имя поля заголовка.
Default - значение по умолчанию.
Возвраты:
значение поля, проанализированного как дата. Значение Default параметр возвращается, если поле отсутствует или уродливое.
Этот метод сначала определяет тип контента объекта, вызывая getContentType метод. Если это - первый раз, когда приложение видело, что определенный тип контента, обработчик содержимого для того типа контента создается:
Если приложение установило экземпляр фабрики обработчика содержимого, используя setContentHandlerFactory метод, createContentHandler метод того экземпляра вызывают с типом контента как параметр; результатом является обработчик содержимого для того типа контента.
Если никакая фабрика обработчика содержимого еще не была установлена, или если фабрика createContentHandler возвраты метода null, тогда приложение загружает названный класс:
sun.net.www.content.<contentType>
где <contentType> формируется, беря строку типа контента, заменяя все символы наклонной черты с a period ('. '), и все другие неалфавитно-цифровые символы с символом подчеркивания'_'. Алфавитно-цифровые символы являются определенно 26 прописными буквами ASCII'A'через'Z', 26 строчных ASCII обозначают буквами'a'через'z', и 10 цифр ASCII'0'через'9'. Если указанный класс не существует, или не является подклассом ContentHandler, тогда UnknownServiceException бросается.
Возвраты:
объект выбирается. instanceof оператор должен использоваться, чтобы определить определенный вид возвращенного объекта.
Броски:
IOException - если ошибка ввода-вывода происходит, получая контент.
classes - Class массив, указывающий на требуемые типы
Возвраты:
объект, выбранный, который является первым соответствием типа, определенного в массиве классов. нуль, если ни один из требуемых типов не поддерживается. instanceof оператор должен использоваться, чтобы определить определенный вид возвращенного объекта.
Броски:
IOException - если ошибка ввода-вывода происходит, получая контент.
Возвращает объект полномочий, представляющий разрешение, необходимое, чтобы сделать соединение представленным этим объектом. Этот нуль возвратов метода, если никакое разрешение не обязано делать соединение. По умолчанию, этот метод возвраты java.security.AllPermission. Подклассы должны переопределить этот метод и возвратить разрешение, которое лучше всего представляет разрешение, требуемое сделать соединение с URL. Например, a URLConnection представление a file: URL возвратил бы a java.io.FilePermission объект.
Возвращенное разрешение может зависящий от состояния соединения. Например, разрешение перед соединением может отличаться от этого после соединения. Например, HTTP разъединяют, говорят foo.com, может перенаправить соединение с различным узлом, сказать bar.com. Прежде, чем соединить разрешение, возвращенное соединением, представит разрешение, должен был соединиться с foo.com, в то время как разрешение, возвращенное после соединения, будет к bar.com.
Полномочия обычно используются в двух целях: защищать кэши объектов, полученных через URLConnections, и проверять право получателя узнать об определенном URL. В первом случае разрешение должно быть получено после того, как объект был получен. Например, в HTTP-соединении, это представит разрешение, чтобы соединиться с узлом, от которого были в конечном счете выбраны данные. Во втором случае разрешение должно быть получено и протестировано перед соединением.
Возвраты:
объект полномочий, представляющий разрешение, необходимое, чтобы сделать соединение, представленное этим URLConnection.
Броски:
IOException - если вычисление разрешения требует сетевого или файлового ввода-вывода, и исключение происходит, вычисляя это.
Возвращает входной поток, который читает из этого открытого соединения. SocketTimeoutException может быть брошен, читая из возвращенного входного потока, если тайм-аут чтения истекает прежде, чем данные доступны для чтения.
Возвраты:
входной поток, который читает из этого открытого соединения.
Броски:
IOException - если ошибка ввода-вывода происходит, создавая входной поток.
Устанавливает значение doInput поле для этого URLConnection к указанному значению.
Соединение URL может использоваться для ввода и/или выведено. Установите флаг DoInput в истину, если Вы намереваетесь использовать соединение URL для ввода, ложь если нет. Значение по умолчанию является истиной.
Устанавливает значение doOutput поле для этого URLConnection к указанному значению.
Соединение URL может использоваться для ввода и/или выведено. Установите флаг DoOutput в истину, если Вы намереваетесь использовать соединение URL для вывода, ложь если нет. Значение по умолчанию является ложью.
public static boolean getDefaultAllowUserInteraction()
Возвращает значение по умолчанию allowUserInteraction поле.
Значение по умолчанию Ths является "липким", будучи частью статического состояния всего URLConnections. Этот флаг применяется к следующему, и все после URLConnections, которые создаются.
Устанавливает значение useCaches поле этого URLConnection к указанному значению.
Некоторые протоколы делают кэширование документов. Иногда, важно быть в состоянии "туннелировать через" и проигнорировать кэши (например, кнопка "перезагрузки" в браузере). Если флаг UseCaches на соединении является истиной, соединению позволяют использовать безотносительно кэшей, это может. Если ложь, кэши должны быть проигнорированы. Значение по умолчанию прибывает из DefaultUseCaches, который значения по умолчанию к истине.
Параметры:
usecaches - a boolean указание, позволить ли кэшироваться
Возвращает значение по умолчанию a URLConnection's useCaches флаг.
Значение по умолчанию Ths является "липким", будучи частью статического состояния всего URLConnections. Этот флаг применяется к следующему, и все после URLConnections, которые создаются.
Возвраты:
значение по умолчанию a URLConnection's useCaches флаг.
public void setRequestProperty(String key,
String value)
Устанавливает общее свойство запроса. Если свойство с ключом уже существует, перезапишите его значение с новым значением.
ОТМЕТЬТЕ: HTTP требует всех свойств запроса, у которых могут по закону быть многократные экземпляры с тем же самым ключом, чтобы использовать синтаксис списка запятой-seperated, который позволяет многократным свойствам быть добавленными в единственное свойство.
Параметры:
key - ключевое слово, которым известен запрос (например,"Accept").
public void addRequestProperty(String key,
String value)
Добавляет общее свойство запроса, определенное парой ключ/значение. Этот метод не будет перезаписывать существующие значения, связанные с тем же самым ключом.
Параметры:
key - ключевое слово, которым известен запрос (например,"Accept").
Возвращает неподдающуюся изменению Карту общих свойств запроса для этого соединения. Ключи Map являются Строками, которые представляют имена полей заголовка запроса. Каждым значением Карты является неподдающийся изменению Список Строк, который представляет соответствующие значения полей.
Осуждаемый.Экземпляр определенный setRequestProperty метод должен использоваться после соответствующего экземпляра URLConnection, получается. Вызов этого метода не будет иметь никакого эффекта.
Устанавливает значение по умолчанию общего свойства запроса. Когда a URLConnection создается, это инициализируется с этими свойствами.
Параметры:
key - ключевое слово, которым известен запрос (например,"Accept").
Наборы ContentHandlerFactory из приложения. Однажды это может вызвать самое большее приложение.
ContentHandlerFactory экземпляр используется, чтобы создать обработчик содержимого из типа контента
Если есть менеджер безопасности, этот метод первые вызовы менеджер безопасности checkSetFactory метод, чтобы гарантировать работу позволяется. Это могло привести к SecurityException.
public static String guessContentTypeFromName(String fname)
Попытки определить тип контента объекта, основанного на указанном компоненте "файла" URL. Это - метод удобства, который может использоваться подклассами, которые переопределяют getContentType метод.
Параметры:
fname - имя файла.
Возвраты:
предположение относительно того, каков тип контента объекта, основан на своем имени файла.
Попытки определить тип входного потока, основанного на символах в начале входного потока. Этот метод может использоваться подклассами, которые переопределяют getContentType метод.
Идеально, эта подпрограмма не была бы необходима. Но многие http серверы возвращают неправильный тип контента; кроме того, есть много нестандартных расширений. Прямой контроль байтов, чтобы определить тип контента часто более точен чем вера типу контента, требуемому http сервер.
Параметры:
is - входной поток, который поддерживает метки.
Возвраты:
предположение в типе контента, или null если ни один не может быть определен.
Броски:
IOException - если ошибка ввода-вывода происходит, читая входной поток.