Я использую общедоступность HttpClient, чтобы сделать http-вызов сервлета Spring. Мне нужно добавить несколько параметров в строку запроса. Поэтому я делаю следующее:commons httpclient - Добавление параметров строки запроса в запрос GET/POST
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");
она возвращает нуль. Фактически параметрMap полностью пуст. Когда я вручную добавляю параметры к URL-адресу перед созданием запроса HttpGet, параметры доступны в сервлете. То же самое, когда я ударил сервлет из браузера, используя URL с добавлением queryString.
Какая здесь ошибка? В httpclient 3.x у GetMethod был метод setQueryString(), чтобы добавить запрос. Что эквивалентно в 4.x?
Нет ли способ добавить параметр строки запроса после того как объект запроса уже создан? Если нет, существует ли другой стандартный способ передать параметры сервлету для любого метода запроса (GET/PUT/POST)? – Oceanic