引入jar
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
http请求
public static String doHttpPostJson(String url, String json){
String resultString = "";
RequestConfig requestConfig = RequestConfig.custom()
.setSocketTimeout(4000)
.setConnectTimeout(4000)
.setConnectionRequestTimeout(4000)
.setStaleConnectionCheckEnabled(true)
.build();
CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(requestConfig).build();
CloseableHttpResponse response = null;
try {
HttpPost httpPost = new HttpPost(url);
StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
httpPost.setEntity(entity);
response = httpClient.execute(httpPost);
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (response != null) {
response.close();
}
if(Objects.nonNull(httpClient)){
httpClient.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return resultString;
}
https请求
public static String doHttpsPostJson(String url, String json){
String result = "";
CloseableHttpClient httpClient = null;
CloseableHttpResponse httpResponse = null;
try {
httpClient = getIgnoeSSLClient();
HttpPost httpPost = new HttpPost(url);
StringEntity requestEntity = new StringEntity(json, ContentType.APPLICATION_JSON);
httpPost.setEntity(requestEntity);
httpResponse = httpClient.execute(httpPost);
HttpEntity entity = httpResponse.getEntity();
result = EntityUtils.toString(entity);
EntityUtils.consume(entity);
httpResponse.close();
httpClient.close();
} catch (Exception e) {
logger.error("doHttpsPostJson error",e);
return result;
} finally {
try {
if(httpResponse!=null){
httpResponse.close();
}
if(httpClient!=null){
httpClient.close();
}
} catch (IOException e) {
logger.error("close httpclient error",e);
return result;
}
}
return result;
}
public static CloseableHttpClient getIgnoeSSLClient() throws Exception {
SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, new TrustStrategy() {
@Override
public boolean isTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
return true;
}
}).build();
CloseableHttpClient client = HttpClients.custom().setSSLContext(sslContext).
setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
return client;
}