|  |  |  | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|