|  |  | 
 |  |  | import org.apache.http.util.EntityUtils; | 
 |  |  | import org.springframework.web.util.UriComponentsBuilder; | 
 |  |  |  | 
 |  |  | import javax.net.ssl.*; | 
 |  |  | import java.io.ByteArrayOutputStream; | 
 |  |  | import java.io.IOException; | 
 |  |  | import java.io.InputStream; | 
 |  |  | import java.io.OutputStream; | 
 |  |  | import java.net.URL; | 
 |  |  | import java.security.KeyManagementException; | 
 |  |  | import java.security.NoSuchAlgorithmException; | 
 |  |  | import java.security.SecureRandom; | 
 |  |  | 
 |  |  | import java.util.Map; | 
 |  |  |  | 
 |  |  | public class HttpsUtil { | 
 |  |  |  | 
 |  |  |     public static String get(String url,boolean ignoreSSL) { | 
 |  |  |         return connection(url, "GET", null, null,ignoreSSL); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public static String sendPostByHttps(String url, Map<String, String> body, String token) { | 
 |  |  | 
 |  |  |         return null; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static String connection(String url,String method,String data,String contentType,boolean ignoreSSL){ | 
 |  |  |         HttpsURLConnection connection = null; | 
 |  |  |         try { | 
 |  |  |             URL _url = new URL(url); | 
 |  |  |             connection = (HttpsURLConnection) _url.openConnection(); | 
 |  |  |             connection.setRequestMethod(method); | 
 |  |  |             connection.setDoOutput(true); | 
 |  |  |             connection.setDoInput(true); | 
 |  |  |             connection.setUseCaches(false); | 
 |  |  |             if(contentType != null){ | 
 |  |  |                 connection.setRequestProperty("Content-Type", contentType); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             if(ignoreSSL){ | 
 |  |  |                 //信任所有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; | 
 |  |  |                     } | 
 |  |  |                 }); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |             connection.connect(); | 
 |  |  |  | 
 |  |  |             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(); | 
 |  |  |                 byte[] b = new byte[4096]; | 
 |  |  |                 ByteArrayOutputStream baos = new ByteArrayOutputStream(b.length); | 
 |  |  |                 int len; | 
 |  |  |                 while ((len = is.read(b)) != -1) { | 
 |  |  |                     baos.write(b, 0, len); | 
 |  |  |                 } | 
 |  |  |                 is.close(); | 
 |  |  |                 return baos.toString("utf-8"); | 
 |  |  |             } | 
 |  |  |             return connection.getResponseMessage(); | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             e.printStackTrace(); | 
 |  |  |         } finally { | 
 |  |  |             if(connection != null){ | 
 |  |  |                 connection.disconnect(); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return null; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public static void main(String[] args) { | 
 |  |  | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | } | 
 |  |  | class HttpsTrustManager implements X509TrustManager { | 
 |  |  |  | 
 |  |  |     private static TrustManager[] trustManagers = {new HttpsTrustManager()}; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { | 
 |  |  |         // TODO Auto-generated method stub | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { | 
 |  |  |         // TODO Auto-generated method stub | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public X509Certificate[] getAcceptedIssuers() { | 
 |  |  |         // TODO Auto-generated method stub | 
 |  |  |         return null; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static void allowAllSSL() { | 
 |  |  |         try { | 
 |  |  |             SSLContext context = SSLContext.getInstance("TLS"); | 
 |  |  |             context.init(null, trustManagers, new SecureRandom()); | 
 |  |  |             HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory()); | 
 |  |  |             HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() { | 
 |  |  |                 @Override | 
 |  |  |                 public boolean verify(String hostname, SSLSession session) { | 
 |  |  |                     return true; | 
 |  |  |                 } | 
 |  |  |             }); | 
 |  |  |         } catch (NoSuchAlgorithmException | KeyManagementException e) { | 
 |  |  |             e.printStackTrace(); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |