java httpclient发送post请求
时间: 2023-09-26 15:06:38 浏览: 45
使用Java的HttpClient发送POST请求可以通过以下步骤完成:
1.创建HttpClient实例:
```java
CloseableHttpClient httpClient = HttpClients.createDefault();
```
2.创建HttpPost实例:
```java
HttpPost httpPost = new HttpPost(url);
```
其中,url是POST请求的目标URL。
3.设置POST请求参数:
```java
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("param1", "value1"));
params.add(new BasicNameValuePair("param2", "value2"));
UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(params, "UTF-8");
httpPost.setEntity(formEntity);
```
其中,NameValuePair表示请求参数的键值对,UrlEncodedFormEntity表示请求参数的编码方式。
4.执行POST请求:
```java
CloseableHttpResponse response = httpClient.execute(httpPost);
```
5.处理响应结果:
```java
HttpEntity entity = response.getEntity();
if (entity != null) {
String result = EntityUtils.toString(entity, "UTF-8");
System.out.println(result);
}
```
完整代码示例:
```java
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
public class HttpClientDemo {
public static void main(String[] args) throws Exception {
CloseableHttpClient httpClient = HttpClients.createDefault();
try {
HttpPost httpPost = new HttpPost("http://www.example.com");
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("param1", "value1"));
params.add(new BasicNameValuePair("param2", "value2"));
UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(params, "UTF-8");
httpPost.setEntity(formEntity);
CloseableHttpResponse response = httpClient.execute(httpPost);
try {
HttpEntity entity = response.getEntity();
if (entity != null) {
String result = EntityUtils.toString(entity, "UTF-8");
System.out.println(result);
}
} finally {
response.close();
}
} finally {
httpClient.close();
}
}
}
```
注意:以上代码中使用了Java 8的Lambda表达式。如果您使用的是Java 7或更早版本,需要将Lambda表达式替换为匿名内部类。