Android SslError.SSL_无效:什么是";发生了一般性错误;?
由于我更新了基于WebView的应用程序,以符合Google删除catchallAndroid 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
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();
}