gpt4 book ai didi

java - commons httpclient - 将查询字符串参数添加到 GET/POST 请求

转载 作者:IT老高 更新时间:2023-10-28 13:52:08 26 4
gpt4 key购买 nike

我正在使用 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 中的等价物是什么?

最佳答案

以下是使用 HttpClient 4.2 及更高版本添加查询字符串参数的方法:

URIBuilder builder = new URIBuilder("http://example.com/");
builder.setParameter("parts", "all").setParameter("action", "finish");

HttpPost post = new HttpPost(builder.build());

生成的 URI 如下所示:

http://example.com/?parts=all&action=finish

关于java - commons httpclient - 将查询字符串参数添加到 GET/POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9907161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com