android-訪問https
阿新 • • 發佈:2018-12-15
okhttp使用https忽略證書驗證
final SSLSocketFactory sslSocketFactory ; try { SSLContext sslContext; sslContext = SSLContext.getInstance("SSL"); sslContext.init(null,new X509TrustManager[]{trustManager},null); sslSocketFactory = sslContext.getSocketFactory(); } catch (GeneralSecurityException e) { throw new RuntimeException(e); } X509TrustManager trustManager = new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } }; HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { return true; } }; //設定okhttp的兩個屬性 okHttpClient.setHostnameVerifier(DO_NOT_VERIFY); okHttpClient.setSslSocketFactory(sslSocketFactory);
webview 載入https --忽略證書
webview.setWebViewClient(new WebViewClient() { @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { //handler.cancel();// 預設的處理方式,WebView變成空白頁 handler.proceed();//忽略證書的錯誤繼續Load頁面內容,不會顯示空白頁面 // super.onReceivedSslError(view, handler, error); } });