Класс Uri
Разобранный URI, например URL.
Чтобы создать URI с определенными компонентами, используйте new 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 URI HTTP и HTTPS
Чтобы создать 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}) фабричный - Создает новый URI из его компонентов.
- Uri.dataFromBytes(List<
int> bytes, {String mimeType = "application/octet-stream", Map< String, String>? parameters, bool percentEncoded = false}) фабричный - Создает URI
data:, содержащий закодированное представлениеbytes. - Uri.dataFromString(String content, {String? mimeType, Encoding? encoding, Map<
String, String>? parameters, bool base64 = false}) фабричный - Создает URI
data:, содержащий строкуcontent. - Uri.directory(String path, {bool? windows}) фабричный
- Аналогичен Uri.file, за исключением того, что непустой путь URI заканчивается косой чертой.
- Uri.file(String path, {bool? windows}) фабричный
- Создает новый URI файла из абсолютного или относительного пути к файлу.
- Uri.http(String authority, [String unencodedPath, Map<
String, dynamic>? queryParameters]) фабричный - Создает новый URI
httpиз компонента authority, пути и строки запроса. - Uri.https(String authority, [String unencodedPath, Map<
String, dynamic>? queryParameters]) фабричный - Создает новый URI
httpsиз компонента authority, пути и строки запроса.
Свойства
- Компонент authority.
- data → UriData? только для чтения
- Доступ к структуре URI
data:. - 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 компонента scheme.
- host → String только для чтения
- Часть host компонента authority.
- isAbsolute → bool только для чтения
- Является ли URI абсолютным.
- origin → String только для чтения
- Возвращает origin URI в формате scheme://host:port для схем http и https.
- path → String только для чтения
- Компонент пути.
- pathSegments → List<
String> только для чтения - Путь URI, разделенный на сегменты.
- port → int только для чтения
- Часть port компонента authority.
- query → String только для чтения
- Компонент строки запроса.
- queryParameters → Map<
String, String> только для чтения - Строка запроса URI, разделенная на карту согласно правилам отправки FORM, указанным в разделе 17.13.4 спецификации HTML 4.01.
- queryParametersAll → Map<
String, List< String>> только для чтения - Возвращает строку запроса URI, разделенную на карту согласно правилам отправки FORM, указанным в разделе 17.13.4 спецификации HTML 4.01.
- runtimeType → Type только для чтенияунаследовано
- Представление типа объекта во время выполнения.
- scheme → String только для чтения
- Компонент scheme URI.
- userInfo → String только для чтения
- Часть user info компонента authority.
Методы
- isScheme(
String scheme) → bool - Совпадает ли схема этого Uri с
scheme. - normalizePath(
) → Uri - Возвращает URI с нормализованным путем.
- noSuchMethod(
Invocation invocation) → dynamic унаследовано - Вызывается при обращении к несуществующему методу или свойству.
- 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 - Разрешает
referenceкак URI относительноthis. - resolveUri(
Uri reference) → Uri - Разрешает
referenceкак URI относительноthis. - toFilePath(
{bool? windows}) → String - Создает путь к файлу из URI файла.
- toString(
) → String переопределен - Нормализованное строковое представление URI.
Операторы
- operator ==(
Object other) → bool переопределен - URI равен другому URI с таким же нормализованным представлением.
Статические свойства
- base → Uri только для чтения
- Естественный базовый 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 байтов в сетевом порядке байтов (от старшего к младшему). - 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, указанным в разделе 17.13.4 спецификации HTML 4.01. - 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.19.6/dart-core/Uri-class.html