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

來源:互聯網
上載者:User

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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.