看这个用Java编写的简单源代码:
Uri helpUrl = Uri.parse(getString(R.string.url_help));
try
{
helpUrl = Uri.parse(mainUrl).buildUpon()
.appendPath("xx")
.appendPath("yy")
.appendPath("zzz.html")
.build();
}
catch (Exception ex)
{
//error
}
注意,mainUrl
可以提供http或https,也可以提供http://host/xxx
或http://host/xxx/
。在Java中,它总是可以工作的。我正在寻找一种在Dart中做同样事情的方法,但看起来没有任何buildUpon
等同物。有什么建议如何做我需要在达特?在dart中,path没有setter, path segments list也没有setter,所以没有帮助。
您需要使用UriBuilder
类,它是uri
包的一部分。
在你的例子中,它的用法是这样的
var ub = UriBuilder.fromUri(Uri.tryParse('https://www.zombo.com/xx'));
ub.path += '/yy';
ub.path += '/zz';
Uri uri = ub.build();
// https://www.zombo.com/xx/yy/zz
没有路径分隔符的自动管理。它只是基于字符串的。