Конструктор-фабрика Uri
Uri(Создает новый URI из его компонентов.
Каждый компонент устанавливается через именованный аргумент. Можно указать любое количество компонентов. Компоненты path и query можно установить, используя любой из двух различных именованных аргументов.
Компонент схемы устанавливается через scheme. Схема нормализуется к строчным буквам. Если схема опущена или пуста, у URI не будет части схемы.
Часть user info компонента authority устанавливается через userInfo. По умолчанию она равна пустой строке, которая будет опущена из строкового представления URI.
Часть host компонента authority устанавливается через host. Хост может быть именем хоста, IPv4-адресом или IPv6-адресом, заключенным в '' and ''. Если хост содержит символ «:», то '' and '' добавляются, если они еще не указаны. Хост нормализуется к строчным буквам.
Часть port компонента authority устанавливается через port. Если port опущено или null, это подразумевает порт по умолчанию для схемы URI, что эквивалентно явному указанию этого порта. Распознаваемые схемы и их порты по умолчанию: «http» (80) и «https» (443). Все остальные схемы считаются имеющими ноль в качестве порта по умолчанию.
Если любой из userInfo, host или port указан, URI имеет authority согласно hasAuthority.
Компонент пути устанавливается через либо path или pathSegments. При использовании path, это должен быть допустимый путь URI, но недопустимые символы, кроме общих разделителей ':/@?#', будут закодированы, если необходимо. При использовании pathSegments, каждый из предоставленных сегментов предварительно кодируется в процентах и затем соединяется с помощью разделителя прямой черты.
Кодирование в процентах сегментов пути кодирует все символы, кроме нерезервированных символов и следующего списка символов: !$&'()*+,;=:@. Если другие компоненты требуют абсолютного пути, ведущий слеш / добавляется, если его там нет.
Компонент запроса устанавливается через либо query или queryParameters. При использовании query, предоставленная строка должна быть допустимым запросом URI, но недопустимые символы, кроме общих разделителей, будут закодированы, если необходимо. При использовании queryParameters запрос строится из предоставленной карты. Каждый ключ и значение в карте кодируется в процентах и соединяются символами равенства и амперсанда. Значение в карте должно быть либо строкой, либо Iterable строк, где последнее соответствует нескольким значениям для одного ключа.
Кодирование в процентах ключей и значений кодирует все символы, кроме нерезервированных, и заменяет пробелы на +. Если query пустая строка, это эквивалентно тому, что её нет. Чтобы иметь фактически пустую часть запроса, используйте пустую карту для queryParameters.
Если оба query и queryParameters опущены или null, у URI нет части запроса.
Компонент фрагмента устанавливается через fragment. Это должен быть допустимый фрагмент URI, но недопустимые символы, кроме общих разделителей, закодируются, если необходимо. Если fragment опущено или null, у URI нет части фрагмента.
Исходный код
factory Uri(
{String scheme,
String userInfo,
String host,
int port,
String path,
Iterable<String> pathSegments,
String query,
Map<String, dynamic /*String|Iterable<String>*/ > queryParameters,
String fragment}) = _Uri;
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-core/Uri/Uri.html