httpclient 表单参数
时间: 2023-05-03 15:05:05 浏览: 171
HttpClient是Apache的一个开源HTTP客户端库,可以用于向web服务器发送请求和接收响应。在发起HTTP请求时,常常需要发送表单参数,HttpClient提供了多种方式来实现这一功能。
一种常见的方式是使用UrlEncodedFormEntity来封装表单参数,如下所示:
```
HttpPost httpPost = new HttpPost("http://example.com/resource");
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username", "user"));
params.add(new BasicNameValuePair("password", "passwd"));
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params, "UTF-8");
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost);
```
这样就可以向指定URL发送包含表单参数的POST请求。
HttpClient还提供了一个特殊的类MultipartEntity,用于实现上传文件和表单参数的混合请求。使用MultipartEntity时,需要在其内部添加上传文件和表单参数,如下所示:
```
HttpPost httpPost = new HttpPost("http://example.com/upload");
MultipartEntity entity = new MultipartEntity();
entity.addPart("file", new FileBody(new File("/path/to/file")));
entity.addPart("username", new StringBody("user", Charset.forName("UTF-8")));
entity.addPart("password", new StringBody("passwd", Charset.forName("UTF-8")));
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost);
```
这样就可以同时上传文件和发送表单参数的POST请求。
阅读全文