/**
* 发送post请求
* @param URL 数据发送地址
* @param json json格式数据内容
* @param headParams 请求头内容
* @return 请求结果
*/
public static String sendPost(String URL, Object json, HashMap<String,String> headParams) throws IOException {
String result = "";
CloseableHttpClient client = HttpClients.createDefault();
try {
HttpPost post = new HttpPost(URL);
post.setHeader("Content-Type", "application/json");
//增加请求头参数
headParams.forEach((key,value) -> {
post.addHeader(key, value);
});
StringEntity s = new StringEntity(json.toString(), "utf-8");
s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
post.setEntity(s);
//构建超时等配置信息
RequestConfig config = RequestConfig.custom().setConnectTimeout(60*1000) //连接超时时间
.setConnectionRequestTimeout(60*1000) //从连接池中取的连接的最长时间
.setSocketTimeout(60 * 1000) //数据传输的超时时间
.build();
post.setConfig(config);
CloseableHttpResponse response = client.execute(post);
try {
HttpEntity resEntity = response.getEntity();
//回复接收
result = EntityUtils.toString(resEntity, "UTF-8");
} finally {
response.close();
}
} catch (Exception e) {
throw e;
}finally {
client.close();
}
return result;
}