Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
1143 of 1172 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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить