Кодирование параметров запроса URL-адреса в Java

Как кодировать параметры запроса для перехода по URL-адресу в Java? Я знаю, это кажется очевидным и уже заданным вопросом.

Есть две тонкости, в которых я не уверен:

  1. Должны ли пробелы в URL кодироваться как «+» или как «% 20»? В chrome, если я ввожу "http://google.com/foo=?bar me", Chrome изменяет его, чтобы он был закодирован с помощью% 20
  2. Необходимо / правильно ли кодировать двоеточия ":" как% 3B? Chrome не работает.

Примечания:

  • java.net.URLEncoder.encode , похоже, не работает, похоже, для представления данных кодирования. Например, он кодирует пробел как + вместо % 20 и кодирует двоеточие, в котором нет необходимости.
  • java.net.URI не кодирует запрос параметры
98
задан Johan Sjöberg 16 March 2011 в 18:57
поделиться