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.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
也可以看看:
相关用法
- Dart UriData.parse用法及代码示例
- Dart Uri.decodeFull用法及代码示例
- Dart Uri.replace用法及代码示例
- Dart Uri.parse用法及代码示例
- Dart Uri.dataFromString用法及代码示例
- Dart Uri.tryParse用法及代码示例
- Dart UriData.mimeType用法及代码示例
- Dart Uri.encodeComponent用法及代码示例
- Dart Uri.directory用法及代码示例
- Dart Uri.toFilePath用法及代码示例
- Dart Uri.file用法及代码示例
- Dart Uri.decodeComponent用法及代码示例
- Dart Uri.dataFromBytes用法及代码示例
- Dart Uri.removeFragment用法及代码示例
- Dart Uri构造函数用法及代码示例
- Dart Uri.splitQueryString用法及代码示例
- Dart Uri.http用法及代码示例
- Dart Uri.https用法及代码示例
- Dart Uri.queryParametersAll用法及代码示例
- Dart Uri.isScheme用法及代码示例
- Dart Uri.encodeFull用法及代码示例
- Dart Uri.queryParameters用法及代码示例
- Dart Utf8Decoder用法及代码示例
- Dart UnmodifiableMapView用法及代码示例
- Dart Uint8List.sublist用法及代码示例
注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 Uri class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。