Android中訪問證書有問題的SSL網頁的方法

NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

PC上的瀏覽器會彈出證書錯誤的對話方塊,提示你是否要無視錯誤繼續瀏覽。實際上在WebView裡也可以這樣做,以實現載入證書有問題的頁面。

複製程式碼 程式碼如下:
WebView webview = (WebView) findViewById(R.id.webview);
webview.setWebViewClient(new WebViewClient() {
    @Override
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {

        // *** NEVER DO THIS!!! ***
        // super.onReceivedSslError(view, handler, error);

        // let’s ignore ssl error
        handler.proceed();
    }
}

只需像這樣過載WebViewClient的onReceivedSslError()函式並在其中執行handler.proceed(),即可忽略SSL證書錯誤,繼續載入頁面。

這裡要注意的是,千萬不要呼叫super.onReceivedSslError()。這是因為WebViewClient的onReceivedSslError()函式中包含了一條handler.cancel()(見原始碼,其含義是停止載入,所以如果呼叫了super.onReceivedSslError(),其結果就是第一次訪問時無法載入,第二次以後可以載入(不知道為什麼),而且還可能發生libc的段錯誤:
複製程式碼 程式碼如下:
A/libc: Fatal signal 11 (SIGSEGV) at 0x00000010 (code=1)

您可能感興趣的文章:

修改Android簽名證書keystore的密碼、別名alias以及別名密碼Android獲取apk簽名指紋的md5值(防止重新被打包)的實現方法Android指紋識別API初試Android 指紋識別詳解及實現方法Android中的指紋識別demo開發例項android 指紋識別呼叫實現方法及示例程式碼Android 6.0指紋識別App開發案例Android6.0指紋識別開發案例Android中獲取sha1證書指紋資料的方法

相關文章

Android 開發 最新文章