0

我有以下要构建的 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 末尾添加了主题标签。

4

1 回答 1

1

这就是 Uri.Builder 的工作原理。它将具有特殊含义的非安全 URL 字符编码为十六进制值。在你的情况下#被编码为%23

为了防止这种使用:

builder.appendEncodedPath("#")
于 2019-06-04T06:37:51.227 回答