Как кодировать параметры запроса на URL-адрес в Java? Я знаю, это похоже на очевидный и уже заданный вопрос.
Есть две тонкости, о которых я не уверен:
- Должны ли пробелы кодироваться на URL как "+" или "%20"? В chrome, если я наберу "http://google.com/foo=?bar me" хром, он будет закодирован с помощью %20
- Нужно ли/правильно кодировать двоеточия ":" как% 3B? Chrome не работает.
Примечания:
-
java.net.URLEncoder.encode
, похоже, не работает, представляется, что данные для кодирования должны быть представлены в форме. Например, он кодирует пространство как+
вместо%20
и кодирует двоеточие, которое не является необходимым. -
java.net.URI
не кодирует параметры запроса