Как создать Android Uri с хэштегом в центре - PullRequest
0 голосов
/ 04 июня 2019

У меня есть следующий 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.

1 Ответ

1 голос
/ 04 июня 2019

Вот как работает Uri.Builder. Он кодирует небезопасные символы URL со специальным значением для их шестнадцатеричных значений. В вашем случае # кодируется как %23

Чтобы предотвратить это использование:

builder.appendEncodedPath("#")
...