Spec-Zone.ru › OpenJDK 27

Класс URL

java.lang.Object
java.net.URL
Все реализуемые интерфейсы:
Serializable
public final class URL extends Object implements Serializable
Класс URL представляет собой унифицированный указатель ресурсов (URL), указывающий на «ресурс» во Всемирной паутине. Ресурсом может быть что-то простое, например файл или каталог, либо ссылка на более сложный объект, такой как запрос к базе данных или поисковой системе. Подробнее

Как правило, URL можно разделить на несколько частей. Рассмотрим следующий пример:

http://www.example.com/docs/resource1.html

Приведённый выше URL указывает, что используется протокол http (протокол передачи гипертекста), а информация находится на хост-компьютере с именем www.example.com. Информация на этом хост-компьютере называется /docs/resource1.html. Точное значение этого имени на хост-компьютере зависит как от протокола, так и от хоста. Обычно информация хранится в файле, но может создаваться и динамически. Этот компонент URL называется компонентом пути.

URL может дополнительно указывать «порт» — номер порта, по которому устанавливается TCP-соединение с удалённым хост-компьютером. Если порт не указан, используется порт протокола по умолчанию. Например, порт по умолчанию для http — 80. Можно указать другой порт:

http://www.example.com:1080/docs/resource1.html

Синтаксис URL определён в RFC 2396: унифицированные идентификаторы ресурсов (URI): общий синтаксис с поправками, внесёнными в RFC 2732: формат литеральных IPv6-адресов в URL. Формат литерального IPv6-адреса также поддерживает идентификаторы областей действия (scope_id). Синтаксис и использование идентификаторов областей действия описаны здесь.

К URL может быть добавлен «фрагмент», также называемый «ref» или «ссылкой». Фрагмент обозначается символом решётки «#», за которым следуют дополнительные символы. Например:

http://www.example.com/index.html#chapter1

Технически этот фрагмент не является частью URL. Вместо этого он указывает, что после получения указанного ресурса приложение интересует именно та часть документа, к которой прикреплён тег chapter1. Значение тега зависит от ресурса.

Приложение также может указать «относительный URL», содержащий только сведения, необходимые для доступа к ресурсу относительно другого URL. Относительные URL часто используются в HTML-страницах. Например, если содержимое URL:

http://www.example.com/index.html
содержит относительный URL:
FAQ.html
это будет краткой записью для:
http://www.example.com/FAQ.html

Относительный URL не обязан указывать все компоненты URL. Если протокол, имя хоста или номер порта отсутствуют, их значения наследуются из URL, заданного полностью. Компонент файла необходимо указать. Необязательный фрагмент не наследуется.

Создание экземпляров URL

Конструкторы java.net.URL устарели. Разработчикам рекомендуется использовать java.net.URI для разбора или создания URL. Если для открытия соединения требуется экземпляр java.net.URL, можно использовать URI для создания или разбора строки URL, при необходимости вызвав URI.parseServerAuthority(), чтобы проверить возможность разбора компонента authority как полномочий на основе сервера, а затем вызвать URI.toURL() для создания экземпляра URL.

Согласно спецификации, конструкторы URL должны выбрасывать MalformedURLException, однако фактически выполняемый разбор и проверка зависят от реализации. Часть разбора и проверки может быть отложена до более позднего момента, когда будет вызвана реализация обработчика потока. Возможность создать экземпляр URL не гарантирует его соответствия спецификации синтаксиса URL.

Класс URL не выполняет кодирование или декодирование компонентов URL в соответствии с механизмом экранирования, определённым в RFC 2396. Вызывающий код отвечает за кодирование полей, требующих экранирования перед вызовом URL, а также за декодирование любых экранированных полей, возвращаемых URL. Кроме того, поскольку URL ничего не знает об экранировании URL, он не распознаёт эквивалентность закодированной и декодированной форм одного и того же URL. Например, два URL: http://foo.com/hello%20world и http://foo.com/hello world/ считаются неравными.

Обратите внимание: класс URI в некоторых случаях выполняет экранирование своих компонентов. Рекомендуемый способ управления кодированием и декодированием URL — использовать URI и преобразовывать объекты этих двух классов друг в друга с помощью toURI() и URI.toURL().

Классы URLEncoder и URLDecoder также можно использовать, но только для кодирования данных HTML-форм, которое отличается от схемы кодирования, определённой в RFC 2396.

Примечание к API:
При работе с путями к файлам и URI файлов приложениям следует тщательно выбирать подходящие методы для преобразования между ними. Фабричный метод Path.of(URI) и конструктор File(URI) можно использовать для создания объектов Path или File из URI файла. Методы Path.toUri() и File.toURI() можно использовать для создания URI из пути к файлу, который затем можно преобразовать в URL с помощью URI.toURL(). Приложениям не следует пытаться создавать или разбирать URL по строковому представлению объекта File или Path.

Перед созданием URL из URI и в зависимости от используемого протокола приложениям следует проверить, можно ли разобрать полномочия URI как полномочия на основе сервера.

Некоторые компоненты URL или URI, например userinfo, могут использоваться для создания вводящих в заблуждение URL или URI. Приложениям, работающим с URL или URI, следует учитывать рекомендации, приведённые в разделе 7 «Вопросы безопасности» RFC 3986.

Все конструкторы URL могут выбрасывать MalformedURLException. В частности, если нижележащая реализация URLStreamHandler отклоняет или заведомо отклонит любой из параметров, может быть выброшено MalformedURLException. Как правило, конструктор, вызывающий метод parseURL обработчика потока, может выбросить MalformedURLException, если нижележащая реализация этого метода в обработчике потока выбросит IllegalArgumentException. Однако то, какие проверки выполняют обработчики потока, зависит от реализации, и вызывающим сторонам не следует полагаться на эти проверки для полной валидации URL.

Начиная с версии:
1.0
Внешние спецификации
  • RFC 2396: унифицированные идентификаторы ресурсов (URI): общий синтаксис
  • RFC 2732: формат литеральных IPv6-адресов в URL
  • RFC 3986: унифицированный идентификатор ресурса (URI): общий синтаксис
См. также:
  • Форма сериализации

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

Конструктор Описание
URL(String spec)
Устарел.
Используйте URI.toURL() для создания экземпляра URL.
URL(String protocol, String host, int port, String file)
Устарел.
Используйте URI.toURL() для создания экземпляра URL.
URL(String protocol, String host, int port, String file, URLStreamHandler handler)
Устарел.
Используйте of(URI, URLStreamHandler) для создания экземпляра URL, связанного с пользовательским обработчиком протокола.
URL(String protocol, String host, String file)
Устарел.
Используйте URI.toURL() для создания экземпляра URL.
URL(URL context, String spec)
Устарел.
Используйте URI.toURL() для создания экземпляра URL.
URL(URL context, String spec, URLStreamHandler handler)
Устарел.
Используйте of(URI, URLStreamHandler) для создания экземпляра URL, связанного с пользовательским обработчиком протокола.

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

Модификатор и тип Метод Описание
boolean equals(Object obj)
Сравнивает этот URL с другим объектом на предмет равенства.
String getAuthority()
Возвращает часть authority этого URL.
final Object getContent()
Возвращает содержимое этого URL.
final Object getContent(Class<?>[] classes)
Возвращает содержимое этого URL.
int getDefaultPort()
Возвращает номер порта по умолчанию протокола, связанного с этим URL.
String getFile()
Возвращает имя файла этого URL.
String getHost()
Возвращает имя хоста этого URL, если применимо.
String getPath()
Возвращает часть пути этого URL.
int getPort()
Возвращает номер порта этого URL.
String getProtocol()
Возвращает имя протокола этого URL.
String getQuery()
Возвращает часть query этого URL.
String getRef()
Возвращает фрагмент (также известный как «ссылка») этого URL.
String getUserInfo()
Возвращает часть userInfo этого URL.
int hashCode()
Создает целое число, подходящее для индексации в хеш-таблице.
static URL of(URI uri, URLStreamHandler handler)
Создает URL из URI, как если бы был вызван uri.toURL(), связывая его при этом с указанным URLStreamHandler, если это разрешено.
URLConnection openConnection()
Возвращает экземпляр URLConnection, представляющий соединение с удаленным объектом, на который ссылается URL.
URLConnection openConnection(Proxy proxy)
То же, что и openConnection(), но соединение устанавливается через указанный прокси-сервер; обработчики протоколов, не поддерживающие работу через прокси-сервер, проигнорируют параметр прокси-сервера и установят обычное соединение.
final InputStream openStream()
Открывает соединение с этим URL и возвращает InputStream для чтения из этого соединения.
boolean sameFile(URL other)
Сравнивает два URL, не учитывая компонент фрагмента.
static void setURLStreamHandlerFactory(URLStreamHandlerFactory fac)
Задает URLStreamHandlerFactory приложения.
String toExternalForm()
Создает строковое представление этого URL.
String toString()
Создает строковое представление этого URL.
URI toURI()
Возвращает URI, эквивалентный этому URL.

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

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

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

URL

@Deprecated(since="20") public URL(String protocol, String host, int port, String file) throws MalformedURLException
Устарело.
Для создания экземпляра URL используйте URI.toURL(). Подробнее см. примечание об устаревании конструкторов.
Создает объект URL из указанных protocol, host, port номера и file.

host может быть задано как имя хоста или буквальный IP-адрес. Если используется буквальный IPv6-адрес, его следует заключить в квадратные скобки ('[' и ']'), как указано в RFC 2732; однако также принимается формат буквального IPv6-адреса, определенный в RFC 2373: архитектура адресации IP версии 6.

Указание значения port номера -1 означает, что для URL должен использоваться порт протокола по умолчанию.

Если это первый объект URL, создаваемый с указанным протоколом, для этого протокола создается объект обработчика потокового протокола — экземпляр класса URLStreamHandler:

  1. Если приложение ранее настроило экземпляр URLStreamHandlerFactory в качестве фабрики обработчиков потоков, для создания обработчика потокового протокола вызывается метод createURLStreamHandler этого экземпляра, которому в качестве аргумента передается строка протокола.
  2. Если URLStreamHandlerFactory еще не настроена или метод createURLStreamHandler фабрики возвращает null, для поиска реализаций URLStreamHandlerProvider с помощью загрузчика классов системы используется механизм ServiceLoader. Порядок поиска поставщиков зависит от реализации; реализация может кэшировать найденных поставщиков. Ошибка ServiceConfigurationError, Error или RuntimeException, возникшая в createURLStreamHandler, если она встретилась, будет передана вызывающему потоку. Для каждого созданного поставщика вызывается метод createURLStreamHandler с передачей строки протокола, пока поставщик не вернет ненулевое значение или не будут проверены все поставщики.
  3. Если на предыдущем этапе обработчик протокола не найден, конструктор считывает значение системного свойства:
    java.protocol.handler.pkgs
    Если значение этого системного свойства не равно null, оно интерпретируется как список пакетов, разделенных вертикальной чертой '|'. Конструктор пытается загрузить класс с именем:
    <package>.<protocol>.Handler
    где <package> заменяется именем пакета, а <protocol> — именем протокола. Если этот класс не существует или существует, но не является подклассом URLStreamHandler, выполняется попытка загрузить следующий пакет из списка.
  4. Если на предыдущем этапе обработчик протокола не найден, конструктор пытается загрузить встроенный обработчик протокола. Если этот класс не существует или существует, но не является подклассом URLStreamHandler, выбрасывается MalformedURLException.

На пути поиска гарантированно присутствуют обработчики протоколов для следующих протоколов:

  • http
  • https
  • file
  • jar
Также могут быть доступны обработчики дополнительных протоколов. Некоторые обработчики протоколов, например используемые для загрузки классов платформы или классов из пути к классам, могут быть переопределены. Сведения о таких ограничениях и случаях их применения (например, во время инициализации среды выполнения) зависят от реализации и поэтому не указаны

Этот конструктор не выполняет проверку входных данных.

Параметры:
protocol — имя используемого протокола.
host — имя хоста.
port — номер порта на хосте.
file — файл на хосте
Исключения:
MalformedURLException — если указан неизвестный протокол или номер порта является отрицательным числом, отличным от -1, либо если реализация нижележащего обработчика потоков отклоняет или заведомо отклонит URL
Внешние спецификации
  • RFC 2373: архитектура адресации IP версии 6
  • RFC 2732: формат буквальных IPv6-адресов в URL
См. также:
  • System.getProperty(java.lang.String)
  • setURLStreamHandlerFactory(java.net.URLStreamHandlerFactory)
  • URLStreamHandler
  • URLStreamHandlerFactory.createURLStreamHandler(java.lang.String)

URL

@Deprecated(since="20") public URL(String protocol, String host, String file) throws MalformedURLException
Устарело.
Для создания экземпляра URL используйте URI.toURL(). Подробнее см. примечание об устаревании конструкторов.
Создает URL из указанных имени protocol, имени host и имени file. Используется порт по умолчанию для указанного протокола.

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

Параметры:
protocol — имя используемого протокола.
host — имя хоста.
file — файл на хосте.
Исключения:
MalformedURLException — если указан неизвестный протокол либо если реализация нижележащего обработчика потоков отклоняет или заведомо отклонит URL
См. также:
  • URL(java.lang.String, java.lang.String, int, java.lang.String)

URL

@Deprecated(since="20") public URL(String protocol, String host, int port, String file, URLStreamHandler handler) throws MalformedURLException
Устарело.
Для создания экземпляра URL, связанного с пользовательским обработчиком протокола, используйте of(URI, URLStreamHandler). Подробнее см. примечание об устаревании конструкторов.
Создает объект URL из указанных protocol, host, port номера, file и handler. Указание значения port номера -1 означает, что для URL должен использоваться порт протокола по умолчанию. Указание значения handler null означает, что для протокола должен использоваться обработчик потоков по умолчанию, как описано для: URL(java.lang.String, java.lang.String, int, java.lang.String) Этот конструктор не выполняет проверку входных данных.
Параметры:
protocol — имя используемого протокола.
host — имя хоста.
port — номер порта на хосте.
file — файл на хосте
handler — обработчик потоков для URL.
Исключения:
MalformedURLException — если указан неизвестный протокол или номер порта является отрицательным числом, отличным от -1, либо если реализация нижележащего обработчика потоков отклоняет или заведомо отклонит URL
См. также:
  • System.getProperty(java.lang.String)
  • setURLStreamHandlerFactory(java.net.URLStreamHandlerFactory)
  • URLStreamHandler
  • URLStreamHandlerFactory.createURLStreamHandler(java.lang.String)

URL

@Deprecated(since="20") public URL(String spec) throws MalformedURLException
Устарело.
Для создания экземпляра URL используйте URI.toURL(). Подробнее см. примечание об устаревании конструкторов.
Создает объект URL из представления String.

Этот конструктор эквивалентен вызову двухаргументного конструктора с аргументом null в качестве первого аргумента.

Параметры:
spec — String для разбора в качестве URL.
Исключения:
MalformedURLException — если протокол не указан или найден неизвестный протокол, или spec имеет значение null, или разобранный URL не соответствует синтаксису, заданному для связанного протокола, или метод parseURL нижележащего обработчика потоков выбрасывает IllegalArgumentException
См. также:
  • URL(java.net.URL, java.lang.String)

URL

@Deprecated(since="20") public URL(URL context, String spec) throws MalformedURLException
Устарело.
Для создания экземпляра URL используйте URI.toURL(). Подробнее см. примечание об устаревании конструкторов.
Создает URL, разбирая указанную спецификацию в заданном контексте. Новый URL создается из заданного контекстного URL и аргумента spec, как описано в RFC 2396 «Унифицированные идентификаторы ресурсов: общий синтаксис»:
<scheme>://<authority><path>?<query>#<fragment>
Ссылка разбирается на части: схема, полномочия, путь, запрос и фрагмент. Если компонент пути пуст, а компоненты схемы, полномочий и запроса не определены, новый URL является ссылкой на текущий документ. В противном случае в новом URL используются части фрагмента и запроса, присутствующие в spec.

Если компонент схемы указан в данной спецификации и не совпадает со схемой контекста, новый URL создается как абсолютный URL только на основе спецификации. В противном случае компонент схемы наследуется от контекстного URL.

Если в спецификации присутствует компонент полномочий, она рассматривается как абсолютная, а полномочия и путь из спецификации заменяют полномочия и путь контекста. Если компонент полномочий в спецификации отсутствует, полномочия нового URL наследуются из контекста.

Если компонент пути спецификации начинается с символа косой черты «/», путь считается абсолютным, а путь из спецификации заменяет путь контекста.

В противном случае путь считается относительным и добавляется к пути контекста, как описано в RFC 2396. Кроме того, в этом случае путь канонизируется путем устранения изменений каталога, вызванных вхождениями «..» и «.».

Более подробное описание разбора URL см. в RFC 2396.

Требования к реализации:
Разбор URL включает вызов метода parseURL выбранного обработчика.
Параметры:
context — контекст, в котором разбирается спецификация.
spec — String для разбора в качестве URL.
Исключения:
MalformedURLException — если протокол не указан или найден неизвестный протокол, или spec имеет значение null, или разобранный URL не соответствует синтаксису, заданному для связанного протокола, или метод parseURL нижележащего обработчика потоков выбрасывает IllegalArgumentException
См. также:
  • URL(java.lang.String, java.lang.String, int, java.lang.String)
  • URLStreamHandler
  • URLStreamHandler.parseURL(java.net.URL, java.lang.String, int, int)

URL

@Deprecated(since="20") public URL(URL context, String spec, URLStreamHandler handler) throws MalformedURLException
Устарело.
Используйте of(URI, URLStreamHandler) для создания экземпляра URL, связанного с обработчиком пользовательского протокола. Подробнее см. примечание об устаревании конструктора.
Создает URL, разбирая указанную спецификацию с помощью заданного обработчика в указанном контексте. Если обработчик равен null, разбор выполняется так же, как в конструкторе с двумя аргументами.
Требования к реализации:
Разбор URL включает вызов метода parseURL выбранного обработчика.
Параметры:
context — контекст, в котором разбирается спецификация.
spec — String, разбираемый как URL.
handler — обработчик потока для URL.
Исключения:
MalformedURLException — если протокол не указан, обнаружен неизвестный протокол, spec равен null, разобранный URL не соответствует конкретному синтаксису связанного протокола или метод parseURL базового обработчика потока выбрасывает IllegalArgumentException
См. также:
  • URL(java.lang.String, java.lang.String, int, java.lang.String)
  • URLStreamHandler
  • URLStreamHandler.parseURL(java.net.URL, java.lang.String, int, int)

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

of

public static URL of(URI uri, URLStreamHandler handler) throws MalformedURLException
Создает URL из URI, как если бы был вызван uri.toURL(), но связывает его с указанным URLStreamHandler, если это разрешено.
Примечание API:
Перед созданием URL и открытием соединения приложениям следует рассмотреть возможность выполнения дополнительных проверок целостности. См. примечание API в документации API на уровне класса.
Требования к реализации:
Реализация этого метода включает вызов метода parseURL выбранного обработчика.
Параметры:
uri — URI, на основе которого должен быть создан возвращаемый URL
handler — пользовательский обработчик потока протокола для возвращаемого URL. Может быть равен null; в этом случае будет использован обработчик потока протокола по умолчанию, если он существует.
Возвращает:
новый экземпляр URL, созданный из указанного URI и связанный с указанным URLStreamHandler, если он задан
Исключения:
NullPointerException — если uri равен null
IllegalArgumentException — если протокол не указан (null — это схема uri) или если URLStreamHandler не равен null и не может быть установлен для указанного протокола
MalformedURLException — если обнаружен неизвестный протокол, указанный URI не соответствует конкретному синтаксису связанного протокола или метод parseURL базового обработчика потока выбрасывает IllegalArgumentException
С момента:
20
См. также:
  • URI.toURL()

getQuery

public String getQuery()
Возвращает часть запроса этого URL.
Возвращает:
часть запроса этого URL или null, если она отсутствует
С момента:
1.3

getPath

public String getPath()
Возвращает часть пути этого URL.
Возвращает:
часть пути этого URL или пустую строку, если она отсутствует
С момента:
1.3

getUserInfo

public String getUserInfo()
Возвращает часть userInfo этого URL.
Возвращает:
часть userInfo этого URL или null, если она отсутствует
С момента:
1.3

getAuthority

public String getAuthority()
Возвращает часть полномочий этого URL.
Возвращает:
часть полномочий этого URL
С момента:
1.3

getPort

public int getPort()
Возвращает номер порта этого URL.
Возвращает:
номер порта или -1, если порт не задан

getDefaultPort

public int getDefaultPort()
Возвращает номер порта по умолчанию для протокола, связанного с этим URL. Если схема URL или URLStreamHandler для URL не определяет номер порта по умолчанию, возвращается -1.
Возвращает:
номер порта
С момента:
1.4

getProtocol

public String getProtocol()
Возвращает имя протокола этого URL.
Возвращает:
протокол этого URL.

getHost

public String getHost()
Возвращает имя хоста этого URL, если применимо. Формат хоста соответствует RFC 2732: для буквального IPv6-адреса этот метод возвращает IPv6-адрес, заключенный в квадратные скобки ('[' и ']').
Возвращает:
имя хоста этого URL.

getFile

public String getFile()
Возвращает имя файла этого URL. Возвращаемая часть файла совпадает с getPath(), дополненным значением getQuery(), если оно есть. Если часть запроса отсутствует, этот метод и getPath() возвращают одинаковые результаты.
Возвращает:
имя файла этого URL или пустую строку, если оно отсутствует

getRef

public String getRef()
Возвращает якорь (также известный как «ссылка») этого URL.
Возвращает:
якорь (также известный как «ссылка») этого URL или null, если он отсутствует

equals

public boolean equals(Object obj)
Сравнивает этот URL на равенство с другим объектом.

Если указанный объект не является URL, этот метод немедленно возвращает false.

Два объекта URL равны, если у них одинаковый протокол, эквивалентные хосты, одинаковый номер порта на хосте, а также одинаковые файл и фрагмент файла.

Два хоста считаются эквивалентными, если имена обоих хостов разрешаются в одинаковые IP-адреса; если разрешить имя хотя бы одного хоста не удается, имена хостов должны совпадать без учета регистра; либо оба имени хостов должны быть равны null.

Поскольку сравнение хостов требует разрешения имен, эта операция является блокирующей.

Примечание. Известно, что определенное поведение equals несовместимо с виртуальным хостингом в HTTP.

Переопределяет:
equals в классе Object
Параметры:
obj — URL для сравнения.
Возвращает:
true, если объекты одинаковы; в противном случае — false.
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Создает целое число, подходящее для индексации в хеш-таблице.

Хеш-код основан на всех компонентах URL, учитываемых при сравнении URL. Поэтому эта операция является блокирующей.

Переопределяет:
hashCode в классе Object
Возвращает:
хеш-код этого URL.
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

sameFile

public boolean sameFile(URL other)
Сравнивает два URL, исключая компонент фрагмента.

Возвращает true, если этот URL и аргумент other равны без учета компонента фрагмента.

Параметры:
other — URL для сравнения.
Возвращает:
true, если они ссылаются на один и тот же удаленный объект; в противном случае — false.

toString

public String toString()
Создает строковое представление этого URL. Строка создается вызовом метода toExternalForm обработчика потокового протокола для этого объекта.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление этого объекта.
См. также:
  • URL(java.lang.String, java.lang.String, int, java.lang.String)
  • URLStreamHandler.toExternalForm(java.net.URL)

toExternalForm

public String toExternalForm()
Создает строковое представление этого URL. Строка создается вызовом метода toExternalForm обработчика потокового протокола для этого объекта.
Возвращает:
строковое представление этого объекта.
См. также:
  • URL(java.lang.String, java.lang.String, int, java.lang.String)
  • URLStreamHandler.toExternalForm(java.net.URL)

toURI

public URI toURI() throws URISyntaxException
Возвращает URI, эквивалентный этому URL. Этот метод работает так же, как new URI (this.toString()).

Обратите внимание: любой экземпляр URL, соответствующий RFC 2396, можно преобразовать в URI. Однако некоторые URL, строго не соответствующие этому стандарту, преобразовать в URI нельзя.

Возвращает:
экземпляр URI, эквивалентный этому URL.
Исключения:
URISyntaxException — если этот URL не отформатирован строго в соответствии с RFC 2396 и не может быть преобразован в URI.
С момента:
1.5

openConnection

public URLConnection openConnection() throws IOException
Возвращает экземпляр URLConnection, представляющий соединение с удаленным объектом, на который ссылается URL.

Новый экземпляр URLConnection создается при каждом вызове метода URLStreamHandler.openConnection(URL) обработчика протокола для этого URL.

Следует отметить, что экземпляр URLConnection не устанавливает фактическое сетевое соединение при создании. Это происходит только при вызове URLConnection.connect().

Если для протокола URL (например, HTTP или JAR) существует общедоступный специализированный подкласс URLConnection, принадлежащий одному из следующих пакетов или их подпакетов: java.lang, java.io, java.util, java.net, возвращаемое соединение будет экземпляром этого подкласса. Например, для HTTP будет возвращен HttpURLConnection, а для JAR — JarURLConnection.

Возвращает:
URLConnection, связанный с URL.
Исключения:
IOException — если возникает исключение ввода-вывода.
См. также:
  • URL(java.lang.String, java.lang.String, int, java.lang.String)

openConnection

public URLConnection openConnection(Proxy proxy) throws IOException
То же, что и openConnection(), за исключением того, что соединение будет установлено через указанный прокси; обработчики протоколов, не поддерживающие прокси, проигнорируют параметр прокси и установят обычное соединение. Вызов этого метода отменяет действие настроек ProxySelector по умолчанию в системе.
Параметры:
proxy — прокси, через который будет установлено соединение. Если требуется прямое соединение, следует указать Proxy.NO_PROXY.
Возвращает:
URLConnection к URL.
Исключения:
IOException — если возникает исключение ввода-вывода.
IllegalArgumentException — если прокси равен null или имеет неверный тип
UnsupportedOperationException — если подкласс, реализующий обработчик протокола, не поддерживает этот метод.
С:
1.5
См. также:
  • URL(java.lang.String, java.lang.String, int, java.lang.String)
  • URLConnection
  • URLStreamHandler.openConnection(java.net.URL, java.net.Proxy)

openStream

public final InputStream openStream() throws IOException
Открывает соединение с этим URL и возвращает InputStream для чтения из этого соединения. Этот метод является сокращённой записью следующего кода:
openConnection().getInputStream()
Возвращает:
поток ввода для чтения из соединения с URL.
Исключения:
IOException — если возникает исключение ввода-вывода.
См. также:
  • openConnection()
  • URLConnection.getInputStream()

getContent

public final Object getContent() throws IOException
Получает содержимое этого URL. Этот метод является сокращённой записью следующего кода:
openConnection().getContent()
Возвращает:
содержимое этого URL.
Исключения:
IOException — если возникает исключение ввода-вывода.
См. также:
  • URLConnection.getContent()

getContent

public final Object getContent(Class<?>[] classes) throws IOException
Получает содержимое этого URL. Этот метод является сокращённой записью следующего кода:
openConnection().getContent(classes)
Параметры:
classes — массив типов Java
Возвращает:
объект содержимого этого URL, который является первым совпадением с типами, указанными в массиве классов. null, если ни один из запрошенных типов не поддерживается.
Исключения:
IOException — если возникает исключение ввода-вывода.
С:
1.3
См. также:
  • URLConnection.getContent(Class[])

setURLStreamHandlerFactory

public static void setURLStreamHandlerFactory(URLStreamHandlerFactory fac)
Задаёт URLStreamHandlerFactory приложения. Этот метод можно вызвать не более одного раза в данной виртуальной машине Java.

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

Параметры:
fac — требуемая фабрика.
Исключения:
Error — если приложение уже задало фабрику.
См. также:
  • URL(java.lang.String, java.lang.String, int, java.lang.String)
  • URLStreamHandlerFactory

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

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