Spec-Zone.ru › OpenJDK 21

Класс URL

java.lang.Object
java.net.URL
Все реализованные интерфейсы:
Serializable
public final class URL extends Object implements Serializable
Класс URL представляет собой унифицированный локатор ресурса, указатель на «ресурс» в глобальной сети. Ресурсом может быть что-то простое, например, файл или каталог, или ссылка на более сложный объект, например, запрос к базе данных или поисковой системе. Дополнительную информацию о типах 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_ids. Синтаксис и использование scope_ids описаны здесь.

К 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() для проверки возможности разбора компонента авторизации как авторизации на основе сервера, а затем вызвав URI.toURL() для создания экземпляра URL.

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

Сам класс URL не кодирует и не декодирует компоненты URL-адреса в соответствии с механизмом экранирования, определённым в RFC2396. Ответственность за кодирование необходимых полей, которые должны быть экранированы перед вызовом URL, и за декодирование экранированных полей, возвращаемых из URL, лежит на вызывающей стороне. Кроме того, поскольку URL не знает о экранировании URL, он не распознаёт эквивалентность кодированной или декодированной формы одного и того же URL-адреса. Например, два URL-адреса:

    http://foo.com/hello world/ and http://foo.com/hello%20world
считались бы не равными друг другу.

Обратите внимание, что класс URI выполняет экранирование своих компонент в определённых случаях. Рекомендуемый способ управления кодированием и декодированием URL-адресов — использование класса URI, а также преобразование между этими двумя классами с использованием toURI() и URI.toURL().

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

Примечание 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, должны учитывать рекомендации, изложенные в RFC3986, раздел 7, Учёт безопасности.

Все конструкторы 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()
Получает часть path этого 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.

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

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

URL

@Deprecated(since="20") public URL(String protocol, String host, int port, String file) throws MalformedURLException
Устарело.
Используйте URI.toURL() для создания экземпляра URL. Дополнительные сведения см. в примечании к устареванию конструктора.
Создаёт объект 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, то используется механизм ServiceLoader для поиска реализаций URLStreamHandlerProvider с помощью загрузчика классов системы. Порядок поиска поставщиков определяется реализацией, и реализация может кэшировать найденных поставщиков. Любой ServiceConfigurationError, Error или RuntimeException, возникающие в createURLStreamHandler, будут переданы потоку, вызвавшему конструктор. Метод createURLStreamHandler каждого поставщика, если он создан, вызывается со строкой протокола до тех пор, пока поставщик не вернёт не null или пока не будут исчерпаны все поставщики.
  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
Устарело.
Используйте URI.toURL() для создания экземпляра URL. Дополнительные сведения см. в примечании к устареванию конструктора.
Создаёт 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
Устарело.
Используйте of(URI, URLStreamHandler) для создания экземпляра URL, связанного с пользовательским обработчиком протокола. Дополнительные сведения см. в примечании к устареванию конструктора.
Создаёт объект URL из указанного protocol, host, port числа, file, и handler. Указание port числа -1 указывает, что URL должен использовать стандартный порт для протокола. Указание handler null указывает, что URL должен использовать стандартный обработчик потока для протокола, как описано для: URL(java.lang.String, java.lang.String, int, java.lang.String)

Если обработчик не равен null и существует менеджер безопасности, вызывается метод checkPermission менеджера безопасности с разрешением NetPermission("specifyStreamHandler"). Это может привести к SecurityException. Валидация входных данных этим конструктором не выполняется.

Параметры:
protocol - имя используемого протокола.
host - имя хоста.
port - номер порта на хосте.
file - файл на хосте
handler - обработчик потока для URL.
Исключения:
MalformedURLException - если неизвестен протокол или порт является отрицательным числом, отличным от -1, или если реализация подчинённого обработчика потока отклоняет или известно, что отклоняет URL
SecurityException - если существует менеджер безопасности, и его метод checkPermission не разрешает явно указывать обработчик потока.
См. также:
  • System.getProperty(java.lang.String)
  • setURLStreamHandlerFactory(java.net.URLStreamHandlerFactory)
  • URLStreamHandler
  • URLStreamHandlerFactory.createURLStreamHandler(java.lang.String)
  • SecurityManager.checkPermission(java.security.Permission)
  • NetPermission

URL

@Deprecated(since="20") public URL(String spec) throws MalformedURLException
Устаревшее.
Используйте URI.toURL() для создания экземпляра URL. Дополнительные сведения см. в примечании о устаревании конструктора.
Создаёт объект 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
Устаревшее.
Используйте URI.toURL() для создания экземпляра URL. Дополнительные сведения см. в примечании о устаревании конструктора.
Создаёт URL, разбирая заданный спецификатор в указанном контексте. Новый URL создаётся из URL контекста и аргумента спецификатора, как описано в RFC2396 «Uniform Resource Identifiers: Generic Syntax»:
          <scheme>://<authority><path>?<query>#<fragment>
 
Ссылка разбирается на схемы, авторитет, путь, запрос и фрагмент. Если компонент пути пуст, а компоненты схемы, авторитета и запроса не определены, то новый URL является ссылкой на текущий документ. В противном случае, фрагмент и компоненты запроса, присутствующие в спецификаторе, используются в новом URL.

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

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

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

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

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

Требования к реализации:
Разбор 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
SecurityException - если существует менеджер безопасности, и его метод checkPermission не позволяет указать обработчик потоков.
См. также:
  • 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 - если не указан протокол (схема uri является null), или если URLStreamHandler не является null и не может быть установлен для данного протокола
MalformedURLException - если найден неизвестный протокол, или заданный URI не соответствует синтаксису соответствующего протокола, или метод parseURL базового обработчика потоков выбрасывает IllegalArgumentException
SecurityException - если существует менеджер безопасности, и его метод checkPermission не позволяет указать обработчик потоков
С:
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.
END_OF_DOCUMENT_MARKER

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(java.lang.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 не отформатирован строго в соответствии с RFC2396 и не может быть преобразован в URI.
С:
1.5

openConnection

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

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

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

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

Возвращает:
a URLConnection ведущий к URL.
Исключения:
IOException - если возникает исключение I/O.
См. также:
  • 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.
Возвращает:
a URLConnection к URL.
Исключения:
IOException - если возникает исключение I/O.
SecurityException - если присутствует менеджер безопасности, и у вызывающего объекта нет разрешения на подключение к прокси.
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 - если возникает исключение I/O.
См. также:
  • openConnection()
  • URLConnection.getInputStream()

getContent

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

getContent

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

setURLStreamHandlerFactory

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

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

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

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

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

Spec-Zone.ru

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