Я использую 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. Фактически параметрMap полностью пуст. Когда я вручную добавляю параметры к URL-адресу перед созданием запроса HttpGet, параметры доступны в сервлете. То же самое, когда я ударил сервлет из браузера, используя URL с добавлением queryString.
Какая ошибка здесь? В httpclient 3.x у GetMethod был метод setQueryString(), чтобы добавить запрос. Что эквивалентно в 4.x?