package com.test;
import java.util.HashMap;
import java.util.Map;
import org.apache.http.Consts;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import net.sf.json.JSONObject;
public class TestApi2 {
// 接口地址
public static final String INSERT_API_URL = "";
public static String httpPost(JSONObject json){
String result = "";
//CloseableHttpClient实现了HttpClient接口
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(INSERT_API_URL);
//创建HttpClientBuilder设置属性
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create().setDefaultRequestConfig(RequestConfig.custom()
/*.setConnectionRequestTimeout(6000)*/
.setSocketTimeout(6000)
.setConnectTimeout(6000).build()).setRetryHandler(new DefaultHttpRequestRetryHandler(3, true));
//设置请求头信息
Map<String,String> map = new HashMap<>();
map.put("Accept","application/json, text/plain, */*");
map.put("Accept-Encoding","gzip, deflate");
map.put("Accept-Language","zh-CN,zh;q=0.9");
map.put("Connection","keep-alive");
map.put("Content-Type","application/json;charset=UTF-8");
map.put("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5024.400 QQBrowser/10.0.932.400");
for (Map.Entry<String, String> entry : map.entrySet()) {
httpPost.setHeader(entry.getKey(), entry.getValue());
}
//传递参数为json数据
/*JSONObject json = new JSONObject();
json.put("id", "123");
json.put("name", "张三");*/
//创建指定内容和编码的字符串实体类
StringEntity entity = new StringEntity(json.toString(), Consts.UTF_8);
//设置请求参数
httpPost.setEntity(entity);
// 创建HttpClient对象,CloseableHttpClient实例的生成器
httpClient = httpClientBuilder.build();
try {
// 发送HttpPost请求,获取返回值
CloseableHttpResponse response = httpClient.execute(httpPost);
result = EntityUtils.toString(response.getEntity(), Consts.UTF_8);
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
//释放资源
httpPost.releaseConnection();
httpClient.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return result;
}
public static void main(String[] args) {
//传递参数为json数据
JSONObject json = new JSONObject();
json.put("id", "a123");
json.put("name", "李四");
System.out.println(httpPost(json));
}
}
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>