| 
					
				 | 
			
			
				@@ -32,6 +32,8 @@ public class OkHttpUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public static final MediaType MEDIA_TYPE_TEXT_HTML = MediaType.parse("text/html;charset=UTF-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private static final MediaType MEDIA_TYPE_FORM= MediaType.parse("application/x-www-form-urlencoded"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static final String SSL = "SSL"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public static final int CONNECT_TIME_OUT = 20; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public static final int READ_TIME = 30; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -56,11 +58,29 @@ public class OkHttpUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * https 和 http 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param ssl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param ssl 如果需要SSL认证https, ssl值为SSL, 如果ssl为空, 则为http 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private static OkHttpClient okHttpClient(String ssl){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return StringUtils.isNotBlank(ssl) && "ssl".equalsIgnoreCase(ssl) ? okHttpInstanceSsl() : okHttpInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return StringUtils.isNotBlank(ssl) && SSL.equals(ssl) ? okHttpInstanceSsl() : okHttpInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * https 和 http 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 如果要信息所有证书, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     *      <code>ssl</code>必须为SSL, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     *      <code>ignoreHostnameVerifier</code>为true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     *      <code>InputStream... certificates</code>为null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param ssl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param ignoreHostnameVerifier 是否忽略Hostname验证 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param certificates 证书流 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static OkHttpClient okHttpClient(String ssl, boolean ignoreHostnameVerifier, InputStream... certificates){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return StringUtils.isNotBlank(ssl) && SSL.equalsIgnoreCase(ssl) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ? okHttpInstanceSsl(ignoreHostnameVerifier, certificates) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                : okHttpInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -73,7 +93,8 @@ public class OkHttpUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             OkHttpClient.Builder builder = new OkHttpClient.Builder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             builder.connectTimeout(CONNECT_TIME_OUT, TimeUnit.SECONDS) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .readTimeout(READ_TIME, TimeUnit.SECONDS) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .writeTimeout(WRITE_TIME, TimeUnit.SECONDS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .writeTimeout(WRITE_TIME, TimeUnit.SECONDS) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .retryOnConnectionFailure(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             client = builder.build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             okHttpClientThreadLocal.set(client); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -81,31 +102,41 @@ public class OkHttpUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return client; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * OkHttpClient ssl 实例 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 忽略Hostname验证, 并信息所有证书 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private static OkHttpClient okHttpInstanceSsl() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return okHttpInstanceSsl(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return okHttpInstanceSsl(true, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * OkHttpClient ssl 实例 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 如果要信息所有证书, <code>InputStream... certificates</code>为null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param ignoreHostnameVerifier 是否忽略Hostname验证 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param certificates 证书流 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private static OkHttpClient okHttpInstanceSsl(InputStream... certificates) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static OkHttpClient okHttpInstanceSsl(boolean ignoreHostnameVerifier, InputStream... certificates) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         OkHttpClient client = okHttpClientSslThreadLocal.get(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (client == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            X509TrustManager trustManager = buildX509TrustManager(certificates); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            X509TrustManager[] trustManager = buildX509TrustManager(certificates); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             SSLSocketFactory sslSocketFactory = buildSSLSocketFactory(trustManager); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             OkHttpClient.Builder builder = new OkHttpClient.Builder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             builder.connectTimeout(CONNECT_TIME_OUT, TimeUnit.SECONDS) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .readTimeout(READ_TIME, TimeUnit.SECONDS) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .writeTimeout(WRITE_TIME, TimeUnit.SECONDS) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .hostnameVerifier(new HostnameVerifier() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        public boolean verify(String hostname, SSLSession session) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }).sslSocketFactory(sslSocketFactory, trustManager); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .writeTimeout(WRITE_TIME, TimeUnit.SECONDS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //是否忽略host验证 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (ignoreHostnameVerifier) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                builder.hostnameVerifier(getHostnameVerifier()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            builder.sslSocketFactory(sslSocketFactory, trustManager[0]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .retryOnConnectionFailure(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             client = builder.build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             okHttpClientSslThreadLocal.set(client); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -282,7 +313,7 @@ public class OkHttpUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return okHttpClient(ssl).newCall(request).execute().body().string(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                logger.error("okhttp3 post throw IOException, {}", e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            logger.error("okhttp3 post throw IOException, {}", e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -293,7 +324,7 @@ public class OkHttpUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param ssl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param responseCallback 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public static void asyncPostCallback(Request request, String ssl, Callback responseCallback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static void asyncPostCallback(Request request, String ssl,  Callback responseCallback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         okHttpClient(ssl).newCall(request).enqueue(responseCallback); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -318,41 +349,20 @@ public class OkHttpUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //------------------------------ ssl ------------------------------ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 获取SSLSocketFactory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param certificates 证书流文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 获取主机验证 HostnameVerifier 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    /*private static SSLSocketFactory buildSSLSocketFactory(InputStream... certificates) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            keyStore.load(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            int index = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (InputStream certificate : certificates) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                String certificateAlias = Integer.toString(index++); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                keyStore.setCertificateEntry(certificateAlias, certificateFactory.generateCertificate(certificate)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (certificate != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        certificate.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static HostnameVerifier getHostnameVerifier() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return new HostnameVerifier() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            public boolean verify(String s, SSLSession sslSession) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            trustManagerFactory.init(keyStore); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            SSLContext sslContext = SSLContext.getInstance("TLS"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sslContext.init(null, trustManagerFactory.getTrustManagers(), new SecureRandom()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return sslContext.getSocketFactory(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 自定义证书 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -390,12 +400,44 @@ public class OkHttpUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private static X509TrustManager buildX509TrustManager(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 证书管理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 信任所有证书 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static X509TrustManager[] buildX509TrustManager(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return buildX509TrustManager(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private static X509TrustManager buildX509TrustManager(InputStream... certificates) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 证书管理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 如果要信任所有证书,<code>InputStream... certificates</code>为null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param certificates 证书文件流 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static X509TrustManager[] buildX509TrustManager(InputStream... certificates) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (certificates == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 信任所有证书 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return new X509TrustManager[]{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    new X509TrustManager() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        public X509Certificate[] getAcceptedIssuers() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return new X509Certificate[]{}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 信任自定义证书 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             KeyStore keyStore = generateKeyStore(certificates); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance( 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -409,8 +451,7 @@ public class OkHttpUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         + Arrays.toString(trustManagers)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            X509TrustManager trustManager = (X509TrustManager) trustManagers[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return trustManager; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return (X509TrustManager[]) trustManagers; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -425,7 +466,7 @@ public class OkHttpUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private static SSLSocketFactory buildSSLSocketFactory(InputStream... certificates) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            TrustManager trustManager = buildX509TrustManager(certificates); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            TrustManager[] trustManager = buildX509TrustManager(certificates); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return buildSSLSocketFactory(trustManager); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             e.printStackTrace(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -433,23 +474,14 @@ public class OkHttpUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private static SSLSocketFactory buildSSLSocketFactory(TrustManager trustManager) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static SSLSocketFactory buildSSLSocketFactory(TrustManager[] trustManager) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (trustManager == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 throw new IllegalStateException("TrustManager is null"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            SSLContext sslContext = SSLContext.getInstance("SSL"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sslContext.init(null, new TrustManager[]{new X509TrustManager() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                public X509Certificate[] getAcceptedIssuers() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return new X509Certificate[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }}, new SecureRandom()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            SSLContext sslContext = SSLContext.getInstance(SSL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sslContext.init(null, trustManager, new SecureRandom()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return sslContext.getSocketFactory(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } catch (Exception e) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -459,4 +491,6 @@ public class OkHttpUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |