| 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<String> 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; | 
|     } | 
|   | 
|   | 
| } |