Dart - Java buildUpon equivalent



看这个用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/xxxhttp://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

没有路径分隔符的自动管理。它只是基于字符串的。

最新更新