【发布时间】:2015-12-24 04:14:35
【问题描述】:
我只是想知道为什么建议使用Uri.Builder 而不是只使用字符串并将参数连接到它?
有人可以用一些简短的例子来解释一下吗?
是因为效率的原因吗(因为字符串是不可变的..etc(但是我们可以使用Stringbuilder或StringBuffer))
或者有任何与字符串有关的安全问题?
【问题讨论】:
我只是想知道为什么建议使用Uri.Builder 而不是只使用字符串并将参数连接到它?
有人可以用一些简短的例子来解释一下吗?
是因为效率的原因吗(因为字符串是不可变的..etc(但是我们可以使用Stringbuilder或StringBuffer))
或者有任何与字符串有关的安全问题?
【问题讨论】:
从远处看URI 是相当复杂的:有一个方案、一个权限、一个路径、查询……此外,您必须记住如何正确编码您的数据。这一切都相当繁琐,而且是一项重复性的工作。
UriBuilder 旨在让您远离这一切。它将正确编码您的参数并正确构建您的URI,无需太多麻烦且语法简单:
UriBuilder.fromUri("http://localhost/").path("{a}").queryParam("name", "{value}").build("segment", "value");
将构建以下 URI:http://localhost/segment?name=value。 {a}路径会被build的第一个参数替换,{value}会被第二个参数替换。
【讨论】: