Как закодировать значения параметров URI?
Я пытаюсь отправить 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 ответ(ов)
Я сам написал свою реализацию, она короткая, очень простая, и вы можете скопировать её, если хотите: http://www.dmurph.com/2011/01/java-uri-encoder/
Java: Кодирование параметров строки запроса в URL
Кодирование URL в JavaScript
Как объявить массив в одну строку?
Загрузка JDK Java на Linux через wget приводит к отображению страницы лицензии вместо установки
Создание репозитория Spring без сущности