0

Как закодировать значения параметров URI?

6

Я пытаюсь отправить URI в качестве значения параметра запроса/матрицы. Прежде чем я смогу добавить его к существующему URI, мне нужно закодировать его в соответствии с RFC 2396. Например, если у меня есть следующий ввод:

http://google.com/resource?key=value1 & value2

Мне нужно получить на выходе:

http%3a%2f%2fgoogle.com%2fresource%3fkey%3dvalue1%2520%26%2520value2

Ни java.net.URLEncoder, ни java.net.URI не обеспечивают правильный вывод. URLEncoder предназначен для кодирования HTML-форм, что не соответствует RFC 2396. Класс URI не имеет механизма для кодирования одного значения за раз, поэтому не может определить, что value1 и value2 относятся к одному и тому же ключу. Как мне добиться нужного результата?

1 ответ(ов)

0

Я сам написал свою реализацию, она короткая, очень простая, и вы можете скопировать её, если хотите: http://www.dmurph.com/2011/01/java-uri-encoder/

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь