Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中訪問證書有問題的SSL網頁的方法

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

編輯:關於Android編程

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)

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved