toUri property

Uri? get toUri

将字符串转为Uri

Uri的基本形式 scheme:scheme-specific-part#fragment

再进一步划分可以是 //host:port?query#fragment path可以有多个,每个用/连接, 例如 scheme://authority/path1/path2/path3?query#fragment query参数可以带有对应的值,也可以不带,如果带对应的值用=表示,如: scheme://authority/path1/path2/path3?id = 1#fragment,这里有一个参数id,它的值是1 query参数可以有多个,每个用&连接 scheme://authority/path1/path2/path3?id = 1&name = mingming&old#fragment 这里有三个参数: 参数1:id,其值是:1 参数2:name,其值是:mingming 参数3:old,没有对它赋值,所以它的值是null 除了scheme、authority是必须要有的,其它的几个path、query、fragment,它们每一个可以选择性的要或不要,但顺序不能变,比如: 其中"path"可不要:scheme://authority?query#fragment 其中"path"和"query"可都不要:scheme://authority#fragment 其中"query"和"fragment"可都不要:scheme://authority/path "path","query","fragment"都不要:scheme://authority

其中authority,又可以分为host:port的形式,即再次划分后是这样的: //host:port?query#fragment 例如 http://www.abcd.com:8080/yourpath/fileName.htm?stove=10&path=32&id=4#harvic scheme:匹对上面的两个Uri标准形式,很容易看出在:前的部分是scheme,所以这个Uri字符串的sheme是:http scheme-specific-part:很容易看出scheme-specific-part是包含在scheme和fragment之间的部分,也就是包括第二部分的path?query这几个小部分 ,所在这个Uri字符串的scheme-specific-part是://www.abcd.com:8080/yourpath/fileName.htm?stove=10&path=32&id=4 , 注意要带上//,因为除了scheme:#fragment部分全部都是scheme-specific-part,当然包括最前面的//; fragment:这个是更容易看出的,因为在最后用#分隔的部分就是fragment,所以这个Uri的fragment是:harvic 下面就是对scheme-specific-part进行拆分了; 在scheme-specific-part中,最前端的部分就是authority,?后面的部分是query,中间的部分就是path authority:很容易看出scheme-specific-part最新端的部分是:www.abcd.com:8080 query:在scheme-specific-part中,?后的部分为:stove=10&path=32&id=4 path:在**query:**在scheme-specific-part中,除了authority和query其余都是path的部分:/yourpath/fileName.htm 又由于authority又一步可以划分为host:port形式,其中host:port用冒号分隔,冒号前的是host,冒号后的是port,所以: host:www.java2s.com port:8080

Implementation

Uri? get toUri {
  try {
    return Uri.parse(this);
  } catch (_) {
    return null;
  }
}