Как кодировать параметры запроса для перехода по URL-адресу в Java? Я знаю, это кажется очевидным и уже заданным вопросом.
Есть две тонкости, в которых я не уверен:
- Следует ли кодировать пробелы в URL-адресе как «+» или «% 20»? В Chrome, если я ввожу "http://google.com/foo=?bar me", Chrome изменяет его на кодировку% 20
- Необходимо / правильно ли кодировать двоеточия ":" как% 3B? Chrome этого не делает.
Ноты:
java.net.URLEncoder.encode
похоже, не работает, похоже, для отправки данных кодирования. Например, он кодирует пробел+
вместо%20
и кодирует двоеточие, в котором нет необходимости.java.net.URI
не кодирует параметры запроса
application/x-www-form-urlencoded
пары ключ / значение. Подробнее см. Здесь: незаконныйargumentexception.blogspot.com/2009/12/…