Метод parse
Метод parse класса Uri создает
и возвращает новый объект Uri из
переданной строки. В первый параметр мы передаем
строку с адресом, во второй необязательный
параметр - начальный индекс, с которого нужно
начать разбор строки. Если строка содержит
некорректный URI, метод выбрасывает исключение
FormatException.
Метод parse удобно использовать, когда
адрес уже известен в виде строки и нужно
разобрать его на составные части: схему, хост,
порт, путь, параметры запроса и фрагмент.
Синтаксис
Uri.parse(String uri, [int start = 0])
Пример
Давайте разберем простой адрес и выведем его основные части:
void main()
{
Uri uri = Uri.parse('https://code.mu:8080/path/index.html?page=1#top');
print(uri.scheme);
print(uri.host);
print(uri.port);
print(uri.path);
print(uri.query);
print(uri.fragment);
}
Результат выполнения кода:
"https"
"code.mu"
8080
"/path/index.html"
"page=1"
"top"
Пример
Давайте разберем адрес, в котором нет схемы и порта, и получим его путь в виде сегментов:
void main()
{
Uri uri = Uri.parse('/ru/dart/manual/uri/');
print(uri.path);
print(uri.pathSegments);
}
Результат выполнения кода:
"/ru/dart/manual/uri/"
[ru, dart, manual, uri]
Пример
Давайте разберем адрес с параметрами запроса и получим их в виде словаря:
void main()
{
Uri uri = Uri.parse('https://code.mu/path?page=1&sort=asc');
print(uri.queryParameters);
}
Результат выполнения кода:
{page: 1, sort: asc}
Пример
Давайте передадим во второй параметр начальный индекс и разберем строку не с начала, а с заданной позиции:
void main()
{
Uri uri = Uri.parse('abcdehttps://code.mu', 5);
print(uri.scheme);
print(uri.host);
}
Результат выполнения кода:
"https"
"code.mu"
Пример
Давайте попробуем разобрать строку с некорректным URI и посмотрим, какое исключение будет выброшено:
void main()
{
try
{
Uri uri = Uri.parse('https://code.mu:port/path');
print(uri);
}
catch (e)
{
print('Error: $e');
}
}
Результат выполнения кода:
"Error: FormatException: Invalid port"
Смотрите также
-
метод
tryParse,
который разбирает строку без исключения -
класс
Uri,
который представляет собой адрес ресурса -
свойство
queryParameters,
которое возвращает параметры запроса -
свойство
pathSegments,
которое возвращает сегменты пути