dart:core 库中Uri构造函数 的用法介绍如下。
用法:
Uri(
{String? scheme,
String? userInfo,
String? host,
int? port,
String? path,
Iterable<String>? pathSegments,
String? query,
Map<String, dynamic>? queryParameters,
String? fragment}
)
从其组件创建一个新的 URI。
每个组件都是通过一个命名参数设置的。可以提供任意数量的组件。 path 和query 组件可以使用两个不同的命名参数之一进行设置。
通过 scheme 设置方案组件。该方案被规范化为所有小写字母。如果方案被省略或为空,则 URI 将没有方案部分。
权限组件的用户信息部分通过 userInfo 设置。它默认为空字符串,将从 URI 的字符串表示中省略。
权限组件的主机部分通过 host 设置。主机可以是主机名、IPv4 地址或 IPv6 地址,包含在 '[' 和 ']' 中。如果主机包含':' 字符,则添加'[' 和']'(如果尚未提供)。主机被规范化为所有小写字母。
权限组件的端口部分通过 port 设置。如果省略 port 或 null ,则表示 URI 方案的默认端口,等效于显式传递该端口。已识别的方案及其默认端口为"http" (80) 和"https" (443)。所有其他方案都被视为将零作为默认端口。
如果提供了 userInfo 、 host 或 port 中的任何一个,则 URI 具有根据 hasAuthority 的权限。
路径组件通过 path 或 pathSegments 设置。当使用path 时,它应该是一个有效的URI 路径,但如果需要,除了通用分隔符':/@[]?#' 之外的无效字符将被转义。当使用pathSegments 时,每个提供的段首先进行百分比编码,然后使用正斜杠分隔符连接。
路径段的percent-encoding 对除未保留字符和以下字符列表之外的所有字符进行编码:!$&'()*+,;=:@。如果其他组件需要绝对路径,则前面的斜杠 / 如果不存在,则在前面添加。
查询组件通过 query 或 queryParameters 设置。当使用query 时,提供的字符串应该是有效的 URI 查询,但如果需要,将转义除常规分隔符之外的无效字符。当使用queryParameters 时,查询是根据提供的Map构建的。映射中的每个键和值都是百分比编码的,并使用相等和 & 字符连接。映射中的值必须是字符串或 Iterable 字符串,其中后者对应于同一键的多个值。
键和值的 percent-encoding 对除未保留字符之外的所有字符进行编码,并将空格替换为 + 。如果query为空字符串,则相当于省略。要获得实际的空查询部分,请为 queryParameters 使用空映射。
如果 query 和 queryParameters 都被省略或 null ,则 URI 没有查询部分。
片段组件通过 fragment 设置。它应该是一个有效的 URI 片段,但如果需要,除了一般分隔符之外的无效字符会被转义。如果省略 fragment 或 null ,则 URI 没有片段部分。
例子:
final httpsUri = Uri(
scheme: 'https',
host: 'dart.dev',
path: 'guides/libraries/library-tour',
fragment: 'numbers');
print(httpsUri); // https://dart.dev/guides/libraries/library-tour#numbers
final mailtoUri = Uri(
scheme: 'mailto',
path: 'John.Doe@example.com',
queryParameters: {'subject': 'Example'});
print(mailtoUri); // mailto:John.Doe@example.com?subject=Example
相关用法
- 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用法及代码示例
- Dart Uri.dataFromBytes用法及代码示例
- Dart Uri.removeFragment用法及代码示例
- 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 constructor。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
