Spec-Zone.ru › Dart 2

dart:core

Класс 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 в обзоре библиотек
  • RFC-3986
  • RFC-2396
  • RFC-2045

Конструкторы

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
Создаёт новый http URI из авторизации, пути и запроса.
Uri.https(String authority, [String unencodedPath, Map<String, dynamic>? queryParameters])
factory
Создаёт новый https URI из авторизации, пути и запроса.

Свойства

authority → String
только для чтения
Компонент авторизации.
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API