public static String doPostHeaders(Map<String, String> params, Map<String, String> headers, String url) {
String result = null;
CloseableHttpClient client = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
//装填参数
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
if(params!=null){
for (Entry<String, String> entry : params.entrySet()) {
nvps.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
}
}
CloseableHttpResponse response = null;
//设置参数到请求对象中
try {
httpPost.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8"));
//设置header信息
for(String header : headers.keySet()) {
httpPost.setHeader(header, headers.get(header));
}
httpPost.setHeader("Cache-Control", "no-cache");
httpPost.setHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
//执行请求操作,并拿到结果(同步阻塞)
response = client.execute(httpPost);
//获取结果实体
HttpEntity entity = response.getEntity();
if (entity != null) {
//按指定编码转换结果实体为String类型
result = EntityUtils.toString(entity, "UTF-8");
}
EntityUtils.consume(entity);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
//释放链接
try {
response.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}