Как представить строку URL для специального символа? - PullRequest
1 голос
/ 27 мая 2011

Я новичок в этом и не смог найти точного ответа. У меня есть специальные символы в URL, такие как,

"&", "#", "?" "<"

это вызывает проблемы. (Если кто-то может подсказать, как справиться с такой ситуацией, это будет дополнительная помощь). Моя основная проблема заключается в том, как я могу представить строковый литерал в JAVA для URL следующего типа?

"x###y"

Я узнал, что нам нужно указать значение кода hex (используя %). Может кто-нибудь предложить точный ответ, чтобы решить эту проблему URL?

Ответы [ 4 ]

4 голосов
/ 27 мая 2011

Вам нужно будет URL кодировать адрес.

См .: -

http://download.oracle.com/javase/1.5.0/docs/api/java/net/URLEncoder.html

1 голос
/ 27 мая 2011

Ответ зависит от того, где находятся данные в URL.Для разных частей URL будут разные правила кодирования.

Точная форма также может зависеть от того, какой формат URI ожидает сервер.

Параметры в запросечасть обычно может быть закодирована как application/x-www-form-urlencoded с использованием URLEncoder :

String query = URLEncoder.encode("key1", "UTF-8")
             + "="
             + URLEncoder.encode("value1", "UTF-8")
             + "&"
             + URLEncoder.encode("key2", "UTF-8")
             + "="
             + URLEncoder.encode("value2", "UTF-8");

Если вам необходимо кодировать в других частях URI (часть пути или часть фрагмента), прочитайте это .

1 голос
/ 27 мая 2011
java.net.URLEncoder.encode(YOUR_STRING, "UTF-8");

См. Также этот вопрос , чтобы узнать, как кодировать только ту часть URL, которая вам нужна:

0 голосов
/ 27 мая 2011
URLEncoder is not for encoding URLs it is there to encode form data

для получения более подробной информации см. Следующую ссылку

Кодировка URL-адреса HTTP в Java

...