РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1134 of 1163 menu

Класс URI

Класс URI из пакета java.net представляет собой неизменяемое (immutable) представление универсального идентификатора ресурса. URI может быть абсолютным или относительным. Абсолютный URI содержит схему (например, http, ftp, file) и идентифицирует ресурс независимо от контекста. Относительный URI не содержит схемы и должен интерпретироваться относительно другого URI. Класс предоставляет методы для получения отдельных компонентов: схемы, хоста, порта, пути, запроса и фрагмента. Конструкторы класса могут выбрасывать URISyntaxException, если переданная строка нарушает синтаксис URI. В отличие от класса URL, класс URI не выполняет никаких сетевых операций и не пытается подключиться к ресурсу, что делает его безопасным для разбора и валидации адресов.

Синтаксис

URI uri = new URI("scheme://host:port/path?query#fragment"); // или URI uri = URI.create("scheme://host:port/path?query#fragment");

Пример

Давайте создадим абсолютный URI и выведем его компоненты на экран:

import java.net.URI; public class Main { public static void main(String[] args) throws Exception { URI uri = new URI("https://example.com:8080/api/data?page=1#top"); System.out.println("Scheme: " + uri.getScheme()); System.out.println("Host: " + uri.getHost()); System.out.println("Port: " + uri.getPort()); System.out.println("Path: " + uri.getPath()); System.out.println("Query: " + uri.getQuery()); System.out.println("Fragment: " + uri.getFragment()); } }

Результат выполнения кода:

"Scheme: https" "Host: example.com" "Port: 8080" "Path: /api/data" "Query: page=1" "Fragment: top"

Пример

Давайте создадим относительный URI и разрешим его относительно базового абсолютного URI:

import java.net.URI; public class Main { public static void main(String[] args) throws Exception { URI base = new URI("https://example.com/api/v1/"); URI relative = new URI("users/123"); URI res = base.resolve(relative); System.out.println(res); } }

Результат выполнения кода:

"https://example.com/api/v1/users/123"

Пример

Давайте вычислим относительный путь между двумя URI с помощью метода relativize:

import java.net.URI; public class Main { public static void main(String[] args) throws Exception { URI base = new URI("https://example.com/api/v1/"); URI other = new URI("https://example.com/api/v1/users/123"); URI res = base.relativize(other); System.out.println(res); } }

Результат выполнения кода:

"users/123"

Смотрите также

  • метод create,
    который создает URI из строки
  • метод getScheme,
    который возвращает схему URI
  • метод getHost,
    который возвращает хост URI
  • метод toURL,
    который преобразует URI в URL
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить