import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
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.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
public class HttpRequestUtil
{
private static final Logger logger = LoggerFactory.getLogger(HttpRequestUtil.class);
public static String doPost(String url, String param)
{
String responseBody = null;
try {
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
httpPost.addHeader("Content-Type", "application/json;charset=UTF-8");
StringEntity stringEntity = new StringEntity(param, "UTF-8");
stringEntity.setContentEncoding("UTF-8");
httpPost.setEntity(stringEntity);
ResponseHandler responseHandler = new ResponseHandler()
{
public String handleResponse(HttpResponse response) throws ClientProtocolException, IOException
{
int status = response.getStatusLine().getStatusCode();
if ((status >= 200) && (status < 300))
{
HttpEntity entity = response.getEntity();
return entity != null ? EntityUtils.toString(entity) : null;
}
throw new ClientProtocolException("Unexpected response status: " + status);
}
};
responseBody = (String)httpclient.execute(httpPost, responseHandler);
} catch (Exception e) {
logger.error("msg:{}", e);
}
return responseBody;
}
}
public static String apiPost(String apiUrl,Map<String, String> reqMap) throws Exception {
HttpClient httpClient = new HttpClient();
PostMethod postMethod = null;
String responseBody = "";
try {
postMethod = new PostMethod(apiUrl);
postMethod.getParams().setParameter(
HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
postMethod.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded;charset=UTF-8");
NameValuePair[] nameValuePairs = new NameValuePair[reqMap.size()];
Set<String> keys = reqMap.keySet();
int i = 0;
for (String key : keys) {
String v = (null != reqMap.get(key)) ? reqMap.get(key) : "";
nameValuePairs[i] = new NameValuePair(key, v);
i++;
}
postMethod.setRequestBody(nameValuePairs);
httpClient.getHttpConnectionManager().getParams()
.setConnectionTimeout(connTimeout);
httpClient.getHttpConnectionManager().getParams()
.setSoTimeout(readTimeout);
int resultCode = httpClient.executeMethod(postMethod);
if (resultCode == HttpStatus.SC_OK) {
responseBody = postMethod.getResponseBodyAsString();
}
} finally {
if (postMethod != null) {
postMethod.releaseConnection();
postMethod = null;
}
if (httpClient != null) {
((SimpleHttpConnectionManager) httpClient
.getHttpConnectionManager()).shutdown();
}
}
return responseBody;