import java.io.IOException;import org.apache.commons.codec.CharEncoding;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpDelete;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpOptions;import org.apache.http.client.methods.HttpPatch;import org.apache.http.client.methods.HttpPost;import org.apache.http.client.methods.HttpPut;import org.apache.http.impl.client.HttpClientBuilder;import org.apache.http.util.EntityUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * HTTP请求辅助工具 * * @project iweixin-pay * @fileName WeixinUtil.java * @Description * @author light-zhang * @date 2018年5月29日下午3:29:42 * @version 1.0.0 */public class HttpUtils { private static final Logger logger = LoggerFactory.getLogger(HttpUtils.class); private static final HttpClient httpClient = HttpClientBuilder.create().build(); /** * 发送POST请求 * * @param url * @param _class * @return */ public staticT post(String url, Class typeOfT) { try { HttpResponse response = httpClient.execute(new HttpPost(url)); HttpEntity entity = response.getEntity(); if (entity != null) { logger.debug("post httpRequest url info:{},response info:{}", url, response); return JsonPoolUtils.fromJson(EntityUtils.toString(entity, CharEncoding.UTF_8), typeOfT); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } /** * 发送DELETE请求 * * @param url * @param typeOfT * @return */ public static T delete(String url, Class typeOfT) { try { HttpResponse response = httpClient.execute(new HttpDelete(url)); HttpEntity entity = response.getEntity(); if (entity != null) { logger.debug("delete httpRequest url info:{},response info:{}", url, response); return JsonPoolUtils.fromJson(EntityUtils.toString(entity, CharEncoding.UTF_8), typeOfT); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } /** * 发送PATCH请求 * * @param url * @param typeOfT * @return */ public static T patch(String url, Class typeOfT) { try { HttpResponse response = httpClient.execute(new HttpPatch(url)); HttpEntity entity = response.getEntity(); if (entity != null) { logger.debug("patch httpRequest url info:{},response info:{}", url, response); return JsonPoolUtils.fromJson(EntityUtils.toString(entity, CharEncoding.UTF_8), typeOfT); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } /** * 发送GET请求 * * @param url * @param obj * @return */ public static T get(String url, Class typeOfT) { try { HttpResponse response = httpClient.execute(new HttpGet(url)); HttpEntity entity = response.getEntity(); if (entity != null) { logger.debug("get httpRequest url info:{},response info:{}", url, response); return JsonPoolUtils.fromJson(EntityUtils.toString(entity, CharEncoding.UTF_8), typeOfT); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } /** * 发送PUT请求 * * @param url * @param _class * @return */ public static T put(String url, Class typeOfT) { try { HttpResponse response = httpClient.execute(new HttpPut(url)); HttpEntity entity = response.getEntity(); if (entity != null) { logger.debug("put httpRequest url info:{},response info:{}", url, response); return JsonPoolUtils.fromJson(EntityUtils.toString(entity, CharEncoding.UTF_8), typeOfT); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } /** * 发送OPTIONS请求 * * @param url * @param typeOfT * @return */ public static T options(String url, Class typeOfT) { try { HttpResponse response = httpClient.execute(new HttpOptions(url)); HttpEntity entity = response.getEntity(); if (entity != null) { logger.debug("options httpRequest url info:{},response info:{}", url, response); return JsonPoolUtils.fromJson(EntityUtils.toString(entity, CharEncoding.UTF_8), typeOfT); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; }}