当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Dart Uri用法及代码示例


dart:core 库中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

HTTP 和 HTTPS URI

要使用 https 方案创建 URI,请使用 Uri.httpsUri.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.parseUri.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

也可以看看:

相关用法


注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 Uri class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。