Dart-Java Buildon等效程序
请看以下用Java编写的简单源代码:Dart-Java Buildon等效程序,dart,build,path,uri,Dart,Build,Path,Uri,请看以下用Java编写的简单源代码: Uri helpUrl = Uri.parse(getString(R.string.url_help)); try { helpUrl = Uri.parse(mainUrl).buildUpon() .appendPath("xx") .appendPath("yy")
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中实现这一点的方法,但看起来没有任何构建在基础上的等效方法。如何在Dart中完成我需要的任务,有什么建议吗?在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
没有路径分隔符的自动管理。它只是基于字符串。所以它实际上什么都没有提供,我可以直接使用字符串,我不会说UriBuilder什么都没有提供。它允许您在一个位置单独组织和管理主机、路径、端口、方案等。但是,它并没有提供您想要的特定功能。如果您热衷于模仿java的行为,这将是一个使用扩展方法的好地方。您所寻求的功能并不复杂,因此我建议将其作为UriBuilder上的扩展方法编写,然后您可以按照自己的意愿使用它。好的,我理解。但在我看来,这仍然不是url解析器,它只是字符串解析器。CORECT添加路径的方法和java类似,在Dart中,这只是字符串添加。谢谢你的澄清,所以我需要自己来实施。