public staticString callHttpServer(String contentType,String json, String url) {
String result= "";
CloseableHttpClient httpclient= null;
CloseableHttpResponse response= null;try{HttpClientBuilder httpClientBuilder=HttpClients.custom();
httpClientBuilder.setRetryHandler(newHttpRequestRetryHandler() {
@Overridepublic boolean retryRequest(IOException arg0, intretryTimes, HttpContext arg2) {if (retryTimes > 3) {return false;
}if (arg0 instanceof UnknownHostException || arg0 instanceofConnectTimeoutException|| !(arg0 instanceof SSLException) || arg0 instanceofNoHttpResponseException) {return true;
}
HttpClientContext clientContext=HttpClientContext.adapt(arg2);
HttpRequest request=clientContext.getRequest();boolean idempotent = !(request instanceofHttpEntityEnclosingRequest);if(idempotent) {
return true;
}return false;
}
});
httpclient=httpClientBuilder.build();
HttpPost httppost= newHttpPost(url);
httppost.setHeader("Content-Type", contentType);
httppost.setHeader("Expect", "100-continue");
httppost.setHeader("Accept-Encoding", "gzip,deflate");
httppost.setHeader("Connection", "Keep-Alive");//如果json 为null,会出现异常
if (null !=json) {
StringEntity stringEntity= new StringEntity(json, "utf-8");
stringEntity.setContentEncoding("UTF-8");
stringEntity.setContentType("application/json");
httppost.setEntity(stringEntity);
}
response=httpclient.execute(httppost);
HttpEntity entity=response.getEntity();if (entity != null) {int status =response.getStatusLine().getStatusCode();if ((status >= 200 && status < 300)) {
result=EntityUtils.toString(entity);}else{
result= null;}
}
}catch(Exception ex) {
logger.error("call http service error:{}", ex);
result= null;
ex.printStackTrace();
}finally{if (null !=response) {try{
response.close();
}catch(IOException e) {
logger.error("call http service response close error:{}", e);
e.printStackTrace();
}
}
}returnresult;
}