在Apache的httpclient上向HttpPost添加参数

pok*_*110 11 java apache parameters get httpclient

我试图在HttpPost对象中设置一些Http参数.

HttpPost post=new HttpPost(url);
HttpParams params=new BasicHttpParams();
params.setParameter("param", "value");
post.setParams(params);
HttpResponse response = client.execute(post);
Run Code Online (Sandbox Code Playgroud)

看起来根本没有设置参数.你知道为什么会这样吗?

谢谢

Cyr*_* N. 26

对于那些希望使用HttpGet找到答案的人,这里有一个(来自/sf/answers/326240351/):

StringBuilder requestUrl = new StringBuilder("your_url");

String querystring = URLEncodedUtils.format(params, "utf-8");
requestUrl.append("?");
requestUrl.append(querystring);

HttpClient httpclient = new DefaultHttpClient();
HttpGet get = new HttpGet(requestUrl.toString());
Run Code Online (Sandbox Code Playgroud)

注意:这不考虑以下状态your_url:如果已经有一些参数,如果它已经包含"?"等,我假设您知道如何编码/搜索并将根据您的情况进行调整.


小智 8

HttpPost httpPost = new HttpPost(url);
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("param", "value"));
httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
httpClient.execute(httpPost);
Run Code Online (Sandbox Code Playgroud)

  • 这个问题被要求提供http get请求.你不能为http get请求设置setEntity (4认同)