Android SslError.SSL_无效:什么是";发生了一般性错误;?

Android SslError.SSL_无效:什么是";发生了一般性错误;?,android,ssl,ssl-certificate,Android,Ssl,Ssl Certificate,由于我更新了基于WebView的应用程序,以符合Google删除catchallSslErrorHandler.procedure()的要求: 请尽快解决此漏洞并增加 已升级的APK的版本号。要正确处理SSL 证书验证,更改代码以调用 只要 服务器满足您的期望,并调用SslErrorHandler.cancel() 否则 使用: 我的应用在访问nytimes.com时不断遇到SslError.SSL_INVALID(“发生了一般错误”) 其他网站不会出现这种情况,比如wikipedia.org

由于我更新了基于WebView的应用程序,以符合Google删除catchall
SslErrorHandler.procedure()
的要求:

请尽快解决此漏洞并增加 已升级的APK的版本号。要正确处理SSL 证书验证,更改代码以调用 只要 服务器满足您的期望,并调用SslErrorHandler.cancel() 否则

使用:


我的应用在访问nytimes.com时不断遇到SslError.SSL_INVALID(“发生了一般错误”)

其他网站不会出现这种情况,比如wikipedia.org

显然,《纽约时报》有一些不同的地方触发了一个错误。但它不是无效或过期的证书,所以我无法修复此问题

我可以做些什么来解决这个问题

顺便说一句,我在中尝试了技巧1-4(将我的智能手机重置为出厂设置,对我来说太多了,无法接受)。无济于事


有什么想法吗?

“我的应用程序一直遇到ssleror.SSL\u INVALID”-什么时候?当您第一次请求他们的页面时,或者在显示此对话框并继续之后?@commonware two:当我第一次请求他们的页面时,以及在显示此对话框并继续之后无数次。
 @Override
    public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {
    final AlertDialog.Builder builder = new AlertDialog.Builder(this);
    String message = "SSL Certificate error.";
        switch (error.getPrimaryError()) {
            case SslError.SSL_UNTRUSTED:
                message = "The certificate authority is not trusted.";
                break;
            case SslError.SSL_EXPIRED:
                message = "The certificate has expired.";
                break;
            case SslError.SSL_IDMISMATCH:
                message = "The certificate Hostname mismatch.";
                break;
            case SslError.SSL_NOTYETVALID:
                message = "The certificate is not yet valid.";
                break;
        }
        message += " Do you want to continue anyway?";

        builder.setTitle("SSL Certificate Error");
        builder.setMessage(message);
    builder.setPositiveButton("continue", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            handler.proceed();
        }
    });
    builder.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            handler.cancel();
        }
    });
    final AlertDialog dialog = builder.create();
    dialog.show();
}