Как правильно кодировать «[» и «]» в запросах, используя Apache HttpClient? - PullRequest
2 голосов
/ 13 апреля 2010

У меня есть метод GET, который выглядит следующим образом:

 GetMethod method = new GetMethod("http://host/path/?key=[\"item\",\"item\"]");

Такой путь прекрасно работает при вводе непосредственно в браузер, но приведенная выше строка при запуске вызывает исключение IllegalArgumentException: Неверный URI.

Я смотрел на использование класса URIUtils , но безуспешно. Есть ли способ автоматически закодировать это (или добавить строку запроса в URL, не вызывая HttpClient к barf?).

Ответы [ 2 ]

2 голосов
/ 13 апреля 2010

Вы также можете использовать java.net.URLEncoder:

String myURL = "http://host/path/?" +
  URLEncoder.encode("key=[\"item\",\"item\"]", UTF-8);
2 голосов
/ 13 апреля 2010

У упомянутого класса URIUtils есть метод encodeAll(str) - так:

new GetMethod("http://host/path/?key=" 
       + URIUtil.encodeAll("[\"item\",\"item\"]"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...