Класс Uri
Разложенный URI, например, URL.
Для создания URI со специфическими компонентами используйте новый Uri:
var httpsUri = Uri(
scheme: 'https',
host: 'dart.dev',
path: '/guides/libraries/library-tour',
fragment: 'numbers');
print(httpsUri); // https://dart.dev/guides/libraries/library-tour#numbers
httpsUri = Uri(
scheme: 'https',
host: 'example.com',
path: '/page/',
queryParameters: {'search': 'blue', 'limit': '10'});
print(httpsUri); // https://example.com/page/?search=blue&limit=10
final mailtoUri = Uri(
scheme: 'mailto',
path: 'John.Doe@example.com',
queryParameters: {'subject': 'Example'});
print(mailtoUri); // mailto:John.Doe@example.com?subject=Example HTTP и HTTPS URI
Для создания URI со схемой https используйте Uri.https или Uri.http:
final httpsUri = Uri.https('example.com', 'api/fetch', {'limit': '10'});
print(httpsUri); // https://example.com/api/fetch?limit=10 URI файла
Для создания URI из пути к файлу используйте Uri.file:
final fileUriUnix =
Uri.file(r'/home/myself/images/image.png', windows: false);
print(fileUriUnix); // file:///home/myself/images/image.png
final fileUriWindows =
Uri.file(r'C:\Users\myself\Documents\image.png', windows: true);
print(fileUriWindows); // file:///C:/Users/myself/Documents/image.png Если URI не является URI файла, вызов этой функции порождает исключение UnsupportedError.
URI каталога
Подобно Uri.file, за исключением того, что путь URI без пустого имени файла заканчивается слешем.
final fileDirectory =
Uri.directory('/home/myself/data/image', windows: false);
print(fileDirectory); // file:///home/myself/data/image/
final fileDirectoryWindows = Uri.directory('/data/images', windows: true);
print(fileDirectoryWindows); // file:///data/images/ URI из строки
Для создания URI из строки используйте Uri.parse или Uri.tryParse:
final uri = Uri.parse(
'https://dart.dev/guides/libraries/library-tour#utility-classes');
print(uri); // https://dart.dev
print(uri.isScheme('https')); // true
print(uri.origin); // https://dart.dev
print(uri.host); // dart.dev
print(uri.authority); // dart.dev
print(uri.port); // 443
print(uri.path); // guides/libraries/library-tour
print(uri.pathSegments); // [guides, libraries, library-tour]
print(uri.fragment); // utility-classes
print(uri.hasQuery); // false
print(uri.data); // null См. также:
Конструкторы
- Uri({String? scheme, String? userInfo, String? host, int? port, String? path, Iterable<
String>? pathSegments, String? query, Map< String, dynamic>? queryParameters, String? fragment}) factory - Создаёт новый URI из его компонентов.
- Uri.dataFromBytes(List<
int> bytes, {String mimeType = "application/octet-stream", Map< String, String>? parameters, bool percentEncoded = false}) factory - Создаёт
data:URI, содержащий кодированиеbytes. - Uri.dataFromString(String content, {String? mimeType, Encoding? encoding, Map<
String, String>? parameters, bool base64 = false}) factory - Создаёт
data:URI, содержащийcontentстроку. - Uri.directory(String path, {bool? windows}) factory
- Подобно Uri.file, за исключением того, что путь URI без пустого имени файла заканчивается слешем.
- Uri.file(String path, {bool? windows}) factory
- Создаёт новый URI файла из абсолютного или относительного пути к файлу.
- Uri.http(String authority, [String unencodedPath, Map<
String, dynamic>? queryParameters]) factory - Создаёт новый
httpURI из авторизации, пути и запроса. - Uri.https(String authority, [String unencodedPath, Map<
String, dynamic>? queryParameters]) factory - Создаёт новый
httpsURI из авторизации, пути и запроса.
Свойства
- Компонент авторизации.
- data → UriData? только для чтения
- Доступ к структуре
data:URI. - fragment → String только для чтения
- Компонент идентификатора фрагмента.
- hasAbsolutePath → bool только для чтения
- Указывает, имеет ли URI абсолютный путь (начинающийся с '/').
- hasAuthority → bool только для чтения
- Указывает, содержит ли URI компонент authority.
- hasEmptyPath → bool только для чтения
- Указывает, имеет ли URI пустой путь.
- hasFragment → bool только для чтения
- Указывает, содержит ли URI часть фрагмента.
- hashCode → int только для чтения, переопределено
- Возвращает хэш-код, вычисленный как
toString().hashCode. - hasPort → bool только для чтения
- Указывает, имеет ли URI явную часть порта.
- hasQuery → bool только для чтения
- Указывает, имеет ли URI часть запроса.
- hasScheme → bool только для чтения
- Указывает, содержит ли URI компонент схемы.
- host → String только для чтения
- Часть имени хоста компонента авторизации.
- isAbsolute → bool только для чтения
- Указывает, является ли URI абсолютным.
- origin → String только для чтения
- Возвращает источник URI в формате схема://хост:порт для схем http и https.
- path → String только для чтения
- Компонент пути.
- pathSegments → List<
String> только для чтения - Компоненты пути URI, разбитые на сегменты.
- port → int только для чтения
- Часть порта компонента авторизации.
- query → String только для чтения
- Компонент запроса.
- queryParameters → Map<
String, String> только для чтения - Компонент запроса URI, разбитый на карту в соответствии с правилами, указанными для POST-запросов с формой в спецификации HTML 4.01, раздел 17.13.4.
- queryParametersAll → Map<
String, List< String>> только для чтения - Возвращает компонент запроса URI, разбитый на карту в соответствии с правилами, указанными для POST-запросов с формой в спецификации HTML 4.01, раздел 17.13.4.
- runtimeType → Type только для чтения, унаследовано
- Представление runtime-типа объекта.
- scheme → String только для чтения
- Компонент схемы URI.
- userInfo → String только для чтения
- Часть user info компонента авторизации.
Методы
- isScheme(
String scheme) → bool - Является ли схема этого Uri
scheme. - normalizePath(
) → Uri - Возвращает URI, где путь был нормализован.
- noSuchMethod(
Invocation invocation) → dynamic inherited - Вызывается при обращении к несуществующему методу или свойству.
- removeFragment(
) → Uri - Создаёт Uri, отличающийся от текущего только отсутствием фрагмента.
- replace(
{String? scheme, String? userInfo, String? host, int? port, String? path, Iterable< String>? pathSegments, String? query, Map< String, dynamic>? queryParameters, String? fragment}) → Uri - Создаёт новый Uri на основе текущего, но с заменой некоторых частей.
- resolve(
String reference) → Uri - Разрешает String как URI, относительно текущего Uri.
- resolveUri(
Uri reference) → Uri - Разрешает Uri как URI, относительно текущего Uri.
- toFilePath(
{bool? windows}) → String - Создаёт путь к файлу из URI файла.
- toString(
) → String override - Нормализованное строковое представление URI.
Операторы
- operator ==(
Object other) → bool override - URI равен другому URI, если имеет то же нормализованное представление.
Статические свойства
- base → Uri read-only
- Естественный базовый URI для текущей платформы.
Статические методы
- decodeComponent(
String encodedComponent) → String - Декодирует процентное кодирование в
encodedComponent. - decodeFull(
String uri) → String - Декодирует процентное кодирование в
uri. - decodeQueryComponent(
String encodedComponent, {Encoding encoding = utf8}) → String - Декодирует процентное кодирование в
encodedComponent, заменяя плюсы на пробелы. - encodeComponent(
String component) → String - Кодирует строку
componentс использованием процентного кодирования для безопасного использования в качестве компонента URI. - encodeFull(
String uri) → String - Кодирует строку
uriс использованием процентного кодирования для безопасного использования в качестве полного URI. - encodeQueryComponent(
String component, {Encoding encoding = utf8}) → String - Кодирует строку
componentв соответствии с правилами HTML 4.01 для кодирования отправки HTML-формы как компонента строки запроса. - parse(
String uri, [int start = 0, int? end]) → Uri - Создаёт новый объект Uri путём парсинга строки URI.
- parseIPv4Address(
String host) → List< int> - Парсит
hostкак IP-адрес версии 4 (IPv4), возвращая адрес как список из 4 байт в сетевом порядке байт (big endian). - parseIPv6Address(
String host, [int start = 0, int? end]) → List< int> - Парсит
hostкак IP-адрес версии 6 (IPv6). - splitQueryString(
String query, {Encoding encoding = utf8}) → Map< String, String> - Разделяет
queryна карту в соответствии с правилами, указанными для отправки FORM в спецификации HTML 4.01, раздел 17.13.4. - tryParse(
String uri, [int start = 0, int? end]) → Uri? - Создаёт новый объект Uri путём парсинга строки URI.
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/Uri-class.html