Я пытался использовать java.net.URI для манипулирования строками запроса, но мне не удалось даже выполнить такую простую задачу, как получение строки запроса из одного URL-адреса и размещение его в другом.
Знаете ли вы, как заставить работать этот код ниже
URI sample = new URI("test?param1=x%3D1");
URI uri2 = new URI(
"http",
"domain",
"/a-path",
sample.getRawQuery(),
sample.getFragment());
Звонок на uri2.toASCIIString()
должен вернуться: http://domain/a-path?param1=x%3D1
но возвращает: http://domain/a-path?param1=x%253D1
(двойное кодирование)
если я использую getQuery () вместо getRawQuery (), строка запроса вообще не кодируется, а URL выглядит так: http://domain/a-path?param1=x=1