public String get(String url, HashMap<String, Object> paramMap, HashMap<String, Object> header) {
String result = null;
if ("".equals(url)) {
return result;
}
// 创建一个request对象
HttpGet httpGet = new HttpGet(url);
CloseableHttpResponse response = null;
try {
// 配置连接参数
httpGet.setConfig(requestConfig);
//设置参数
if (paramMap != null && paramMap.size() > 0) {
List<NameValuePair> params = new ArrayList<>();
for (Entry<String, Object> entry : paramMap.entrySet()) {
params.add(new BasicNameValuePair(entry.getKey(), URLEncoder.encode(entry.getValue().toString(), "UTF-8")));
}
String strParams = EntityUtils.toString(new UrlEncodedFormEntity(params));
// 防止多参数时,分隔符","被转义
String realParams = URLDecoder.decode(strParams, "UTF-8");
httpGet.setURI(new URI(httpGet.getURI().toString().indexOf("?") > 0 ? httpGet.getURI().toString() + "&" + realParams : httpGet.getURI().toString() + "?" + realParams));
}
// 设置头
if (header != null && header.size() > 0) {
for (Entry<String, Object> entry : header.entrySet()) {
httpGet.addHeader(entry.getKey(), entry.getValue().toString());
}
}
// 执行request请求
response = httpClient.execute(httpGet);
result = parseResponse(response);
} catch (Exception e) {
LOGGER.error("url : "+ url +", msg : " + e.getMessage());
httpGet.abort();
} finally {
try {
if (response != null) {
response.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}
public String post(String url, HashMap<String, Object> paramMap, HashMap<String, Object> header) {
String result = null;
if ("".equals(url)) {
return result;
}
// 创建一个request对象
HttpPost httpPost = new HttpPost(url);
CloseableHttpResponse response = null;
try {
// 配置连接参数
httpPost.setConfig(requestConfig);
// 设置参数
if (paramMap != null && paramMap.size() > 0) {
List<NameValuePair> params = new ArrayList<>();
for (Entry<String, Object> entry : paramMap.entrySet()) {
params.add(new BasicNameValuePair(entry.getKey(), entry.getValue().toString()));
}
HttpEntity entity = new UrlEncodedFormEntity(params);
httpPost.setEntity(entity);
}
// 设置头
if (header != null && header.size() > 0) {
for (Entry<String, Object> entry : header.entrySet()) {
httpPost.addHeader(entry.getKey(), entry.getValue().toString());
}
}
// 执行request请求
response = httpClient.execute(httpPost);
result = reponseHandle(response);
} catch (Exception e) {
LOGGER.error("url : "+ url +", msg : " + e.getMessage());
httpPost.abort();
} finally {
try {
if (response != null) {
response.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}
public String postJSON(String url, String json_str, HashMap<String, Object> header) {
String result = null;
if ("".equals(url)) {
return result;
}
// 创建一个request对象
HttpPost httpPost = new HttpPost(url);
CloseableHttpResponse response = null;
try {
// 配置连接参数
httpPost.setConfig(requestConfig);
// 设置参数
if (json_str != null && !"".equals(json_str)) {
StringEntity entity = new StringEntity(json_str, ContentType.APPLICATION_JSON);
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
httpPost.setEntity(entity);
}
// 设置头
if (header != null && header.size() > 0) {
for (Entry<String, Object> entry : header.entrySet()) {
httpPost.addHeader(entry.getKey(), entry.getValue().toString());
}
}
// 执行request请求
response = httpClient.execute(httpPost);
result = reponseHandle(response);
} catch (Exception e) {
LOGGER.error("url : "+ url +", msg : " + e.getMessage()+", param : " +json_str);
httpPost.abort();
} finally {
try {
if (response != null) {
response.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}
public String delete(String url, HashMap<String, Object> header) {
String result = null;
if ("".equals(url)) {
return result;
}
// 创建一个request对象
HttpDelete httpDelete = new HttpDelete(url);
CloseableHttpResponse response = null;
try {
// 配置连接参数
httpDelete.setConfig(requestConfig);
// 设置头
if (header != null && header.size() > 0) {
for (Entry<String, Object> entry : header.entrySet()) {
httpDelete.addHeader(entry.getKey(), entry.getValue().toString());
}
}
// 执行request请求
response = httpClient.execute(httpDelete);
int statusCode = response.getStatusLine().getStatusCode();
// 没有正常响应
if (statusCode < HttpStatus.SC_OK || statusCode >= HttpStatus.SC_MULTIPLE_CHOICES) {
throw new RuntimeException("statusCode : " + statusCode);
}
result = Integer.toString(statusCode);
} catch (Exception e) {
LOGGER.error("url : "+ url +", msg : " + e.getMessage());
httpDelete.abort();
} finally {
try {
if (response != null) {
response.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}