如何在中心创建带有标签的 Android Uri
How to create Android Uri with hashtag in the center
我有以下要构造的 Uri。
https://www.example.com/sub/#/action?firstparam=123456&secondparam=abcdef
我使用 Android Uri.Builder 构造 Uri
Uri uri = new Uri.Builder().scheme(HTTPS_SCHEME).authority("www.example.com").appendPath("sub").appendPath("#").appendPath("action")appendQueryParameter(
"firstparam", first).appendQueryParameter("secondparam", second).build();
但主题标签已编码,将导致以下 Uri
https://www.example.com/sub/%23/action?firstparam=123456&secondparam=abcdef
如何预防?我尝试使用 fragment
但它在 Uri 的末尾添加了主题标签。
这就是 Uri.Builder 的工作原理。它对 non-safe URL 个字符进行编码,这些字符的十六进制值具有特殊含义。在您的情况下 #
被编码为 %23
要防止这种使用:
builder.appendEncodedPath("#")
我有以下要构造的 Uri。
https://www.example.com/sub/#/action?firstparam=123456&secondparam=abcdef
我使用 Android Uri.Builder 构造 Uri
Uri uri = new Uri.Builder().scheme(HTTPS_SCHEME).authority("www.example.com").appendPath("sub").appendPath("#").appendPath("action")appendQueryParameter(
"firstparam", first).appendQueryParameter("secondparam", second).build();
但主题标签已编码,将导致以下 Uri
https://www.example.com/sub/%23/action?firstparam=123456&secondparam=abcdef
如何预防?我尝试使用 fragment
但它在 Uri 的末尾添加了主题标签。
这就是 Uri.Builder 的工作原理。它对 non-safe URL 个字符进行编码,这些字符的十六进制值具有特殊含义。在您的情况下 #
被编码为 %23
要防止这种使用:
builder.appendEncodedPath("#")