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