Я використовую спільний 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?