URI 处理
Uri 类提供了对字符串进行编码和解码的函数,简化开发者对Uri的处理。
URI 编码和解码
要对URI中具有特殊含义的字符(例如 /、:、&、#)进行编码和解码,请使用encodeFull()和decodeFull()方法。这些方法适用于编码或解码完整的URI,保留完整的特殊URI字符。
var uri = 'http://example.org/api?foo=some message';
// 注意,只有some和message中间的空格被编码
var encoded = Uri.encodeFull(uri);
assert(encoded == 'http://example.org/api?foo=some%20message');
var decoded = Uri.decodeFull(encoded);
assert(uri == decoded);
对URI组件进行编码和解码
要对URI中具有特殊含义的所有字符串字符进行编码和解码,包括(但不限于)/、&和:,请使用encodeComponent()和decodeComponent()方法。
var uri = 'http://example.org/api?foo=some message';
// 注意每个特殊字符的编码。例如 / 被编码为%2F
var encoded = Uri.encodeComponent(uri);
assert(encoded == 'http%3A%2F%2Fexample.org%2Fapi%3Ffoo%3Dsome%20message');
var decoded = Uri.decodeComponent(encoded);
assert(uri == decoded);
解析URI
如果有一个Uri对象或一个Uri字符串,可以使用Uri字段(如path)获得其中的部分。从字符串创建Uri,可使用parse()静态方法
var uri = Uri.parse('http://example.org:8080/foo/bar#frag');
assert(uri.scheme == 'http');
assert(uri.host == 'example.org');
assert(uri.path == '/foo/bar');
assert(uri.fragment == 'frag');
assert(uri.origin == 'http://example.org:8080');
查看 Uri API文档 获得更多的Uri用法。
构建URI
可以使用Uri()构造函数从各个部分构建一个URI
var uri = Uri(
scheme: 'http',
host: 'example.org',
path: '/foo/bar',
fragment: 'frag');
assert(uri.toString() == 'http://example.org/foo/bar#frag');
公众号“编程之路从0到1”