Метод parseServerAuthority
Метод parseServerAuthority класса URI пытается разобрать компонент authority текущего URI как серверную часть. Authority - это часть URI, которая идёт после схемы и перед путём и обычно содержит хост, порт и, возможно, пользовательскую информацию. Метод не принимает параметров и возвращает новый объект URI с уже разобранным authority. Если authority невозможно разобрать как серверную часть, выбрасывается исключение URISyntaxException. Исходный объект URI при этом не изменяется.
Синтаксис
uri.parseServerAuthority()
Пример
Давайте создадим URI с authority и разберём его серверную часть:
import java.net.URI;
public class Main
{
public static void main(String[] args) throws Exception
{
URI uri = new URI("http://user@example.com:8080/path?query=1");
URI parsed = uri.parseServerAuthority();
System.out.println(parsed.getHost());
System.out.println(parsed.getPort());
}
}
Результат выполнения кода:
"example.com"
8080
Пример
Давайте попробуем разобрать authority, который не является серверной частью:
import java.net.URI;
public class Main
{
public static void main(String[] args)
{
try
{
URI uri = new URI("http://example.com:notaport/path");
uri.parseServerAuthority();
}
catch (Exception e)
{
System.out.println(e.getClass().getSimpleName());
}
}
}
Результат выполнения кода:
"URISyntaxException"
Пример
Давайте проверим, что исходный URI не изменяется после вызова метода:
import java.net.URI;
public class Main
{
public static void main(String[] args) throws Exception
{
URI uri = new URI("http://example.com:8080/path");
URI parsed = uri.parseServerAuthority();
System.out.println(uri.equals(parsed));
System.out.println(parsed.getHost());
}
}
Результат выполнения кода:
false
"example.com"