【发布时间】:2012-04-12 00:35:29
【问题描述】:
我正在使用 commons HttpClient 对 Spring servlet 进行 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");
它返回空值。实际上 parameterMap 是完全空的。当我在创建 HttpGet 请求之前手动将参数附加到 url 时,参数在 servlet 中可用。当我使用附加了 queryString 的 URL 从浏览器中点击 servlet 时也是如此。
这里有什么错误?在 httpclient 3.x 中,GetMethod 有一个 setQueryString() 方法来附加查询字符串。 4.x 中的等价物是什么?
【问题讨论】:
标签: java apache-httpclient-4.x