package doumeemes.core.utils; import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.conn.ssl.TrustSelfSignedStrategy; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.ssl.SSLContexts; import org.apache.http.util.EntityUtils; import org.springframework.web.util.UriComponentsBuilder; import java.io.IOException; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.Map; public class HttpsUtil { public static String sendPostByHttps(String url, Map body, String token) { CloseableHttpResponse response = null; // 处理请求路径 url = UriComponentsBuilder.fromHttpUrl(url) .toUriString(); //创建httpclient对象 CloseableHttpClient client = null; String respBody; try { client = HttpClients.custom() .setSSLSocketFactory(new SSLConnectionSocketFactory(SSLContexts.custom() //忽略掉对服务器端证书的校验 .loadTrustMaterial(null, new TrustSelfSignedStrategy()) .build(), NoopHostnameVerifier.INSTANCE)) .build(); //创建post方式请求对象 HttpPost httpPost = new HttpPost(url); // 请求头设置 httpPost.setHeader("Accept", "*/*"); httpPost.setHeader("connection", "Keep-Alive"); httpPost.setHeader("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); httpPost.setHeader("Content-type", "application/json;charset=utf-8"); httpPost.setHeader("Authorization", token);//如果需要token请修改传入自己的token以及Authorization // 情求体设置 if (body != null) { httpPost.setEntity(new StringEntity(JSONObject.toJSONString(body), "utf-8")); } //执行请求操作,并拿到结果 response = client.execute(httpPost); //获取结果实体 HttpEntity entity = response.getEntity(); if (entity != null) { respBody = EntityUtils.toString(entity); return respBody; } } catch (Exception e) { } finally { try { if (client != null) { client.close(); } if (response != null) { response.close(); } } catch (IOException e) { } } return null; } public static String sendGetByHttps(String url,String token) { CloseableHttpResponse response = null; // 处理请求路径 url = UriComponentsBuilder.fromHttpUrl(url) .toUriString(); //创建httpclient对象 CloseableHttpClient client = null; String respBody; try { client = HttpClients.custom() .setSSLSocketFactory(new SSLConnectionSocketFactory(SSLContexts.custom() //忽略掉对服务器端证书的校验 .loadTrustMaterial(null, new TrustSelfSignedStrategy()) .build(), NoopHostnameVerifier.INSTANCE)) .build(); //创建post方式请求对象 HttpGet httpPost = new HttpGet(url); // 请求头设置 httpPost.setHeader("Accept", "*/*"); httpPost.setHeader("connection", "Keep-Alive"); httpPost.setHeader("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); httpPost.setHeader("Content-type", "application/json;charset=utf-8"); httpPost.setHeader("Authorization", token);//如果需要token请修改传入自己的token以及Authorization //执行请求操作,并拿到结果 response = client.execute(httpPost); //获取结果实体 HttpEntity entity = response.getEntity(); if (entity != null) { respBody = EntityUtils.toString(entity); return respBody; } } catch (Exception e) { } finally { try { if (client != null) { client.close(); } if (response != null) { response.close(); } } catch (IOException e) { } } return null; } public static void main(String[] args) { //局部信任所有证书和主机 String result = HttpsUtil.sendGetByHttps("http://localhost/x_organization_assemble_express/jaxrs/person/63c288ff-f04d-4e63-b1b8-35071b13ad0e?x-token=B6oxLY3qj4QVaDvi7QiV5AcSIf_M1oiifPjFnXf7xOnFD0FL3f1lFhM2xIcT3GGMf3vrW27MZuMUAvXn08hwUmRiV20q5VtNEMYSA2ic85o",null); System.out.println(result); } }