public class HttpClientUtil {
private static Logger logger = LoggerFactory.getLogger(HttpClientUtil.class);
public static String doGet(String url, Map<String, String> param) {// 创建Httpclient对象CloseableHttpClient httpclient = HttpClients.createDefault();String resultString = "";CloseableHttpResponse response = null;try {// 创建uriURIBuilder builder = new URIBuilder(url);if (param != null) {for (String key : param.keySet()) {builder.addParameter(key, param.get(key));}}URI uri = builder.build();logger.debug("whole url:" + uri);// 创建http GET请求HttpGet httpGet = new HttpGet(uri);// 执行请求response = httpclient.execute(httpGet);// 判断返回状态是否为200if (response.getStatusLine().getStatusCode() == 200) {resultString = EntityUtils.toString(response.getEntity(), "UTF-8");}} catch (Exception e) {e.printStackTrace();} finally {try {if (response != null) {response.close();}httpclient.close();} catch (IOException e) {e.printStackTrace();}}return resultString;}public static String doGet(String url) {return doGet(url, null);}/*** doPostByJson* @param url* @param json* @return*/public static String doPostByJson(String url, String json, String chartSet) {String defalutChartSet = "UTF-8";if (chartSet != null) {defalutChartSet = chartSet;}// 创建Httpclient对象CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;String resultString = "";try {// 创建Http Post请求HttpPost httpPost = new HttpPost(url);// 创建请求内容StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);entity.setContentEncoding(defalutChartSet);httpPost.setEntity(entity);// 执行http请求response = httpClient.execute(httpPost);resultString = EntityUtils.toString(response.getEntity(), defalutChartSet);} catch (Exception e) {e.printStackTrace();} finally {try {response.close();} catch (IOException e) {e.printStackTrace();}}return resultString;}/**** @param url* @param param* @param chartSet* @return*/public static String doPost(String url, Map<String, String> param, String chartSet) {String defalutChartSet = "UTF-8";if (chartSet != null) {defalutChartSet = chartSet;}// 创建Httpclient对象CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;String resultString = "";try {// 创建Http Post请求HttpPost httpPost = new HttpPost(url);// 创建参数列表if (param != null) {List<NameValuePair> paramList = new ArrayList<>();for (String key : param.keySet()) {paramList.add(new BasicNameValuePair(key, param.get(key)));}// 模拟表单UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList, defalutChartSet);httpPost.setEntity(entity);}// 执行http请求response = httpClient.execute(httpPost);resultString = EntityUtils.toString(response.getEntity(), defalutChartSet);} catch (Exception e) {e.printStackTrace();} finally {try {if (response != null) {response.close();}} catch (IOException e) {e.printStackTrace();}}return resultString;}public static String doPostByFile(String url, File file, String termSeq) {String resultString = "";CloseableHttpClient httpClient = null;CloseableHttpResponse response = null;try {httpClient = HttpClients.createDefault();// 把一个普通参数和文件上传给下面这个地址 是一个servletHttpPost httpPost = new HttpPost(url);// 把文件转换成流对象FileBodyFileBody bin = new FileBody(file);StringBody termSeqStr = new StringBody(termSeq, ContentType.create("text/plain", Consts.UTF_8));HttpEntity reqEntity = MultipartEntityBuilder.create()// 相当于<input type="file" name="file"/>.addPart("file", bin)// 相当于<input type="text" name="userName" value=userName>.addPart("termSeq", termSeqStr)
// .addPart(“pass”, password)
.build();
httpPost.setEntity(reqEntity);// 发起请求 并返回请求的响应response = httpClient.execute(httpPost);logger.info("The response value of token:" + response.getFirstHeader("token"));System.out.println("The response value of token:" + response.getFirstHeader("token"));// 获取响应对象HttpEntity resEntity = response.getEntity();if (resEntity != null) {// 打印响应长度logger.info("Response content length: " + resEntity.getContentLength());System.out.println("Response content length: " + resEntity.getContentLength());// 打印响应内容resultString = EntityUtils.toString(resEntity, Charset.forName("UTF-8"));}// 销毁EntityUtils.consume(resEntity);return resultString;} catch (Exception e) {e.printStackTrace();} finally {try {if (response != null) {response.close();}} catch (IOException e) {e.printStackTrace();}try {if (httpClient != null) {httpClient.close();}} catch (IOException e) {e.printStackTrace();}}return resultString;}/**** @param url* @param param* @return*/public static String doPost(String url, Map<String, String> param) {return doPost(url, param, null);}/**** @param url* @return*/public static String doPost(String url) {return doPost(url, null);}
}
