169 lines
5.3 KiB
Java
169 lines
5.3 KiB
Java
package com.sky.common.utils;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import org.apache.http.NameValuePair;
|
|
import org.apache.http.client.config.RequestConfig;
|
|
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
|
import org.apache.http.client.methods.HttpGet;
|
|
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;
|
|
|
|
import java.io.IOException;
|
|
import java.net.URI;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
/**
|
|
* Http工具类
|
|
*/
|
|
public class HttpClientUtil {
|
|
|
|
static final int TIMEOUT_MSEC = 5 * 1000;
|
|
|
|
/**
|
|
* 发送GET方式请求
|
|
*/
|
|
public static String doGet(String url, Map<String, String> paramMap) {
|
|
// 创建Httpclient对象
|
|
CloseableHttpClient httpClient = HttpClients.createDefault();
|
|
|
|
String result = "";
|
|
CloseableHttpResponse response = null;
|
|
|
|
try {
|
|
URIBuilder builder = new URIBuilder(url);
|
|
if (paramMap != null) {
|
|
for (String key : paramMap.keySet()) {
|
|
builder.addParameter(key, paramMap.get(key));
|
|
}
|
|
}
|
|
URI uri = builder.build();
|
|
|
|
// 创建GET请求
|
|
HttpGet httpGet = new HttpGet(uri);
|
|
|
|
// 发送请求
|
|
response = httpClient.execute(httpGet);
|
|
|
|
// 判断响应状态
|
|
if (response.getStatusLine().getStatusCode() == 200) {
|
|
result = EntityUtils.toString(response.getEntity(), "UTF-8");
|
|
}
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
} finally {
|
|
try {
|
|
response.close();
|
|
httpClient.close();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* 发送POST方式请求
|
|
*/
|
|
public static String doPost(String url, Map<String, String> paramMap) throws IOException {
|
|
// 创建Httpclient对象
|
|
CloseableHttpClient httpClient = HttpClients.createDefault();
|
|
CloseableHttpResponse response = null;
|
|
String resultString = "";
|
|
|
|
try {
|
|
// 创建Http Post请求
|
|
HttpPost httpPost = new HttpPost(url);
|
|
|
|
// 创建参数列表
|
|
if (paramMap != null) {
|
|
List<NameValuePair> paramList = new ArrayList();
|
|
for (Map.Entry<String, String> param : paramMap.entrySet()) {
|
|
paramList.add(new BasicNameValuePair(param.getKey(), param.getValue()));
|
|
}
|
|
// 模拟表单
|
|
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);
|
|
httpPost.setEntity(entity);
|
|
}
|
|
|
|
httpPost.setConfig(builderRequestConfig());
|
|
|
|
// 执行http请求
|
|
response = httpClient.execute(httpPost);
|
|
|
|
resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
|
|
} catch (Exception e) {
|
|
throw e;
|
|
} finally {
|
|
try {
|
|
response.close();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
return resultString;
|
|
}
|
|
|
|
/**
|
|
* 发送POST方式请求
|
|
*/
|
|
public static String doPost4Json(String url, Map<String, String> paramMap) throws IOException {
|
|
// 创建Httpclient对象
|
|
CloseableHttpClient httpClient = HttpClients.createDefault();
|
|
CloseableHttpResponse response = null;
|
|
String resultString = "";
|
|
|
|
try {
|
|
// 创建Http Post请求
|
|
HttpPost httpPost = new HttpPost(url);
|
|
|
|
if (paramMap != null) {
|
|
// 构造json格式数据
|
|
JSONObject jsonObject = new JSONObject();
|
|
for (Map.Entry<String, String> param : paramMap.entrySet()) {
|
|
jsonObject.put(param.getKey(), param.getValue());
|
|
}
|
|
StringEntity entity = new StringEntity(jsonObject.toString(), "utf-8");
|
|
// 设置请求编码
|
|
entity.setContentEncoding("utf-8");
|
|
// 设置数据类型
|
|
entity.setContentType("application/json");
|
|
httpPost.setEntity(entity);
|
|
}
|
|
|
|
httpPost.setConfig(builderRequestConfig());
|
|
|
|
// 执行http请求
|
|
response = httpClient.execute(httpPost);
|
|
|
|
resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
|
|
} catch (Exception e) {
|
|
throw e;
|
|
} finally {
|
|
try {
|
|
response.close();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
return resultString;
|
|
}
|
|
|
|
private static RequestConfig builderRequestConfig() {
|
|
return RequestConfig.custom()
|
|
.setConnectTimeout(TIMEOUT_MSEC)
|
|
.setConnectionRequestTimeout(TIMEOUT_MSEC)
|
|
.setSocketTimeout(TIMEOUT_MSEC).build();
|
|
}
|
|
}
|