Spec-Zone.ru › OpenJDK 24

Класс URL

java.lang.Object
java.net.URL
Все реализуемые интерфейсы:
Serializable
public final class URL extends Object implements Serializable
Класс URL представляет собой универсальный локатор ресурсов (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() для проверки того, что компонент authority может быть проанализирован как серверный, а затем вызвав 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: Архитектура адресации версии 6 протокола IP.

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

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

  1. Если приложение ранее настроило экземпляр URLStreamHandlerFactory в качестве фабрики обработчиков потоков, то вызывается метод createURLStreamHandler этого экземпляра со строкой протокола в качестве аргумента для создания обработчика потоков протокола.
  2. Если фабрика обработчиков потоков ещё не настроена или метод 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: Архитектура адресации версии 6 протокола IP
  • 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) Валидация входных данных в этом конструкторе не выполняется.
Параметры:
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
Устаревший.
Используйте 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 контекста и аргумента spec, как описано в RFC2396 "Uniform Resource Identifiers : Generic Syntax" :
          <scheme>://<authority><path>?<query>#<fragment>
 
Ссылка анализируется на составляющие: схему, авторитет, путь, запрос и фрагмент. Если компонент пути пустой, а компоненты схемы, авторитета и запроса не определены, то новый URL является ссылкой на текущий документ. В противном случае, фрагмент и часть запроса из spec используются в новом 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
См. также:
  • 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
С:
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(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.

Возвращает:
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)
Устанавливает фабрику обработчика протокола URL для приложения. Этот метод может быть вызван не более одного раза в данной виртуальной машине Java.

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

Parameters:
fac - желаемая фабрика.
Throws:
Error - если приложение уже установило фабрику.
See Also:
  • URL(java.lang.String, java.lang.String, int, java.lang.String)
  • URLStreamHandlerFactory

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/net/URL.html

Spec-Zone.ru

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