package com.matrix.component.tools; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.matrix.core.exception.GlobleException; import com.matrix.core.tools.LogUtil; import org.apache.http.client.ResponseHandler; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.BasicResponseHandler; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import java.io.IOException; /** * POST 请求工具 */ public class HttpClientUtil { public static JSONObject sendPostWithJson(String url, String json) { CloseableHttpClient httpClient = HttpClients.createDefault(); ResponseHandler responseHandler = new BasicResponseHandler(); try { //第一步:创建HttpClient对象 httpClient = HttpClients.createDefault(); //第二步:创建httpPost对象 HttpPost httpPost = new HttpPost(url); //第三步:给httpPost设置JSON格式的参数 StringEntity requestEntity = new StringEntity(json, "utf-8"); requestEntity.setContentEncoding("UTF-8"); httpPost.setHeader("Content-type", "application/json"); httpPost.setEntity(requestEntity); //第四步:发送HttpPost请求,获取返回值 String returnValue = httpClient.execute(httpPost, responseHandler); //调接口获取返回值时,必须用此方法 return JSON.parseObject(returnValue); } catch (Exception e) { e.printStackTrace(); } finally { try { httpClient.close(); } catch (IOException e) { LogUtil.error("http请求发送失败", e); throw new GlobleException(e.getMessage()); } } //第五步:处理返回值 return null; } }