我只是想知道为什么建议使用Uri.Builder
而不仅仅使用字符串并将参数连接到它?
有人可以用一些简短的例子解释一下吗?
是否因为效率(因为字符串是不可变的..等等(但我们可以使用Stringbuilder
或StringBuffer
))
或者Strings有任何安全问题吗?
答案 0 :(得分:4)
当你从一个遥远的角度看待它时,URI
非常复杂:那里有一个方案,一个权威,一条路径,一些查询......而且,你必须记住如何正确编码你的数据。所有这些都非常繁琐,而且是一项重复性任务。
UriBuilder
旨在让你远离这一切。它会正确编码您的参数,并且可以正确地构建您的URI
,而不会有太多麻烦和简单的语法:
UriBuilder.fromUri("http://localhost/").path("{a}").queryParam("name", "{value}").build("segment", "value");
将构建以下URI:http://localhost/segment?name=value
。 {a}
路径将替换为build
的第一个参数,{value}
将替换为第二个参数。