我使用 commons HttpClient 对 Springservlet 进行 http 调用。我需要在查询字符串中添加一些参数。所以我这样做:
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);
但是,当我尝试读取 servlet 中的参数时,使用
((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest().getParameter("key");
返回 null。实际上参数 Map 是完全空的。当我在创建 HttpGet 请求之前手动将参数附加到 URL 时,这些参数在 servlet 中是可用的。当我从浏览器中使用附加了 queryString 的 URL 命中 servlet 时也是如此。
这里出了什么问题?在 httpclient 3.x 中,GetMethod 有一个 setQueryString ()方法来追加 querystring。4.x 的等价物是什么?