commons httpclient - Добавление параметров строки запроса в запрос GET/POST

Я использую commons HttpClient для выполнения http-вызова сервлета Spring. Мне нужно добавить несколько параметров в строку запроса. Итак, я делаю следующее:

HttpRequestBase request = new HttpGet(url);
HttpParams params = new BasicHttpParams();
params.setParameter("key1", "value1");
params.setParameter("key2", "value2");
params.setParameter("key3", "value3");
request.setParams(params);
HttpClient httpClient = new DefaultHttpClient();
httpClient.execute(request);

Однако, когда я пытаюсь прочитать параметр в сервлете, используя

((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest().getParameter("key");

, он возвращает null. Фактически карта параметров полностью пуста. Когда я вручную добавляю параметры к URL-адресу перед созданием запроса HttpGet, параметры доступны в сервлете. То же самое, когда я запускаю сервлет из браузера, используя URL-адрес с добавленной строкой запроса.

В чем здесь ошибка? В httpclient 3.x GetMethod имел метод setQueryString() для добавления строки запроса. Что эквивалентно в 4.x?

70
задан skaffman 18 May 2012 в 18:02
поделиться