|  |  | 
 |  |  | package com.doumee.core.utils; | 
 |  |  |  | 
 |  |  | import org.apache.http.client.methods.CloseableHttpResponse; | 
 |  |  | import org.apache.http.client.methods.HttpGet; | 
 |  |  | import org.apache.http.client.utils.URIBuilder; | 
 |  |  | import org.apache.http.impl.client.CloseableHttpClient; | 
 |  |  | import org.apache.http.impl.client.HttpClients; | 
 |  |  | import org.apache.http.util.EntityUtils; | 
 |  |  |  | 
 |  |  | import javax.net.ssl.*; | 
 |  |  | import java.io.ByteArrayOutputStream; | 
 |  |  | import java.io.IOException; | 
 |  |  | import java.io.InputStream; | 
 |  |  | import java.io.OutputStream; | 
 |  |  | import java.net.URI; | 
 |  |  | import java.net.URL; | 
 |  |  | 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 post(String url, String data, String contentType, boolean ignoreSSL) { | 
 |  |  |         return connection(url, "POST", data, contentType, ignoreSSL); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static String connection(String url,String method,String data,String contentType,boolean ignoreSSL){ | 
 |  |  |         HttpsURLConnection connection = null; | 
 |  |  |         try { | 
 |  |  | 
 |  |  |         } | 
 |  |  |         return null; | 
 |  |  |     } | 
 |  |  |     public static InputStream postJson(String url, String data){ | 
 |  |  |         HttpsURLConnection connection = null; | 
 |  |  |         try { | 
 |  |  |             URL _url = new URL(url); | 
 |  |  |             connection = (HttpsURLConnection) _url.openConnection(); | 
 |  |  |             connection.setRequestMethod("POST"); | 
 |  |  |             connection.setDoOutput(true); | 
 |  |  |             connection.setDoInput(true); | 
 |  |  |             connection.setUseCaches(false); | 
 |  |  |             connection.setRequestProperty("Content-Type", "application/json"); | 
 |  |  |             connection.connect(); | 
 |  |  |             //信任所有ssl证书和主机 | 
 |  |  |             TrustManager[] trustManagers = {new HttpsTrustManager()}; | 
 |  |  |             SSLContext context = SSLContext.getInstance("TLS"); | 
 |  |  |             context.init(null, trustManagers, new SecureRandom()); | 
 |  |  |             connection.setSSLSocketFactory(context.getSocketFactory()); | 
 |  |  |             connection.setHostnameVerifier(new HostnameVerifier() { | 
 |  |  |                 @Override | 
 |  |  |                 public boolean verify(String hostname, SSLSession session) { | 
 |  |  |                     return true; | 
 |  |  |                 } | 
 |  |  |             }); | 
 |  |  |             if(data != null){ | 
 |  |  |                 OutputStream outputStream = connection.getOutputStream(); | 
 |  |  |                 outputStream.write(data.getBytes("utf-8")); | 
 |  |  |                 outputStream.close(); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             int responseCode = connection.getResponseCode(); | 
 |  |  |             if (responseCode == HttpsURLConnection.HTTP_OK) { | 
 |  |  |                 InputStream is = connection.getInputStream(); | 
 |  |  |                 return is; | 
 |  |  |             } | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             e.printStackTrace(); | 
 |  |  |         } finally { | 
 |  |  |             if(connection != null){ | 
 |  |  |            //     connection.disconnect(); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return null; | 
 |  |  |     } | 
 |  |  |     /** | 
 |  |  |      * 发送get请求 | 
 |  |  |      * @param url 请求URL | 
 |  |  |      * @param param 请求参数 key:value url携带参数 或者无参可不填 | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public static  String doGet(String url, Map<String, String> param) { | 
 |  |  |         // 创建Httpclient对象 | 
 |  |  |         CloseableHttpClient httpclient = HttpClients.createDefault(); | 
 |  |  |         String resultString = ""; | 
 |  |  |         CloseableHttpResponse response = null; | 
 |  |  |         try { | 
 |  |  |             // 创建uri | 
 |  |  |             URIBuilder builder = new URIBuilder(url); | 
 |  |  |             if (param != null) { | 
 |  |  |                 for (String key : param.keySet()) { | 
 |  |  |                     builder.addParameter(key, param.get(key)); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             URI uri = builder.build(); | 
 |  |  |             // 创建http GET请求 | 
 |  |  |             HttpGet httpGet = new HttpGet(uri); | 
 |  |  |             // 执行请求 | 
 |  |  |             response = httpclient.execute(httpGet); | 
 |  |  |             // 判断返回状态是否为200 | 
 |  |  |             if (response.getStatusLine().getStatusCode() == 200) { | 
 |  |  |                 resultString = EntityUtils.toString(response.getEntity(), "UTF-8"); | 
 |  |  |             } | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             e.printStackTrace(); | 
 |  |  |         } finally { | 
 |  |  |             try { | 
 |  |  |                 if (response != null) { | 
 |  |  |                     response.close(); | 
 |  |  |                 } | 
 |  |  |                 httpclient.close(); | 
 |  |  |             } catch (IOException e) { | 
 |  |  |                 e.printStackTrace(); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return resultString; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static void main(String[] args) { | 
 |  |  |         //局部信任所有证书和主机 |