Android异常之:Unable to extract the trust manager on Android10Platform, sslSocketFactory is class

报错异常

Unable to extract the trust manager on Android10Platform, sslSocketFactory is class com.android.org.conscrypt.OpenSSLSocketFactoryImpl

无法提取Android10平台上的信任管理器,sslSocketFactory是com.android.org.conscrypt.OpenSSLSocketFactoryImpl类

前言

在集成华为云上传的时候 项目跑起来就报错
报错问题就是上述

解决方法

在配置OkHttpClient.Builder的时候 改一下SSL的参数
具体看下面代码

 OkHttpClient.Builder mOkHttpBuilder = new OkHttpClient.Builder()
 .sslSocketFactory(SSLSocketClient.getSSLSocketFactory(), 
 	new X509TrustManager() {
    
    
    @SuppressLint("TrustAllX509TrustManager")
    @Override
    public void checkClientTrusted(X509Certificate[] chain, String authType) {
    
    }

    @SuppressLint("TrustAllX509TrustManager")
    @Override
    public void checkServerTrusted(X509Certificate[] chain, String authType) {
    
    }

    @Override
    public X509Certificate[] getAcceptedIssuers() {
    
    
           return new X509Certificate[0];
          }
   })
   .hostnameVerifier(SSLSocketClient.getHostnameVerifier())

改完就解决报错问题了 不知道是否帮助到你了 点个赞吧!

SSLSocketClient

public class SSLSocketClient {
    
    
    //获取这个SSLSocketFactory
    public static SSLSocketFactory getSSLSocketFactory() {
    
    
        try {
    
    
            SSLContext sslContext = SSLContext.getInstance("SSL");
            sslContext.init(null, getTrustManager(), new SecureRandom());
            return sslContext.getSocketFactory();
        } catch (Exception e) {
    
    
            throw new RuntimeException(e);
        }
    }

    //获取TrustManager
    private static TrustManager[] getTrustManager() {
    
    
        return new TrustManager[]{
    
    new X509TrustManager() {
    
    
            @Override
            public void checkClientTrusted(X509Certificate[] chain, String authType) {
    
    
            }

            @Override
            public void checkServerTrusted(X509Certificate[] chain, String authType) {
    
    
            }

            @Override
            public X509Certificate[] getAcceptedIssuers() {
    
    
                return new X509Certificate[0];
            }
        }};
    }

    //获取HostnameVerifier
    public static HostnameVerifier getHostnameVerifier() {
    
    
        HostnameVerifier hostnameVerifier = new HostnameVerifier() {
    
    
            @Override
            public boolean verify(String s, SSLSession sslSession) {
    
    
                return true;
            }
        };
        return hostnameVerifier;
    }
}

猜你喜欢

转载自blog.csdn.net/Life_s/article/details/135378825