来自Android WebView的Https连接

来自Android WebView的Https连接,android,https,webview,Android,Https,Webview,我需要在我的应用程序中(在网络视图中)通过https加载一些页面。 我知道你能行 @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { Log.d("SSL", "ERROR "+ error); handler.proceed(); // Ignore SSL certificate errors } 但

我需要在我的应用程序中(在网络视图中)通过https加载一些页面。 我知道你能行

@Override
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
        Log.d("SSL", "ERROR "+ error);
        handler.proceed(); // Ignore SSL certificate errors
    }
但这最终会破坏https的初衷,所以有没有正确的方法来做到这一点,将客户端证书添加到webview链甚至设备链,以便我可以使用自签名证书

还有一个问题,doing handler.procedure()吗;禁用加密。i、 e.如果我使用此连接发送用户名,它会以计划形式发送吗


注意:如果有人需要使上述解决方案更加“安全”,您可以检查域中的错误对象,并且只允许您的域测试CN=my.domain.com

,以便使用设备上未预装的任何证书,也许你可以从存储器中安装你的设备
设置
->
来安装你的新证书


WebView曾提供
setCertificate()
的接口,但在API级别17中不推荐使用该接口,这可能意味着您现在无法从应用程序安装cert。

感谢您的回复。正如您所提到的,我尝试在设备级别(Galaxy S3)上安装证书,但它不起作用。我甚至还学习了类似于5教程的内容,以防错过证书格式或类似的内容。不幸的是,它甚至在浏览器中也无法工作,正如一些教程中提到的那样,webview无法读取全局证书存储。我确实发现了这个方法,它是“这没有做任何有用的评论”。但是,如果我将早期的API作为目标,它是否仍能在所有设备上工作?如果您询问API
setCertificate()
是否能在所有设备上工作,答案是否定的。顺便说一句,“doing handler.Processing()”不会禁用加密;它所做的只是告诉SSL层,应用层对未知证书没有问题(即,它使SSL层相信证书是可信的)。Hm,不在所有设备上工作很糟糕。尽管您提到忽略SSL错误并不会禁用加密,但我认为在本例中,使用我在说明中编写的解决方法是可以的。