Retrofit java.security.cert.CertPathValidatorException:
retrofit请求网络,有时候会遇到说证书错误的问题,方便起见,我们可以信任所有证书。
·
retrofit请求网络,有时候会遇到说证书错误的问题,方便起见,我们可以信任所有证书
自定义的SSLSocketFactory如下:
/** * Trust every server - don't check for any certificate */ private SSLSocketFactory getSSLSocketFactory() { // Create a trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() { public java.security.cert.X509Certificate[] getAcceptedIssuers() { return new java.security.cert.X509Certificate[]{}; } public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } }}; // Install the all-trusting trust manager try { SSLContext sc = SSLContext.getInstance("TLS"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); return sc.getSocketFactory(); } catch (Exception e) { e.printStackTrace(); } return null; }
然后retrofit的设置如下:
OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(interceptor) .sslSocketFactory(getSSLSocketFactory()) .build(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://ikki-test.site.youdao.com/log/crash/") .client(client) .addConverterFactory(GsonConverterFactory.create(new Gson())) .build(); MyApiService service = retrofit.create(MyApiService.class);
更多推荐
所有评论(0)