okhttp3去掉https证书的client

来源:互联网 发布:中国软件 综合排名 编辑:程序博客网 时间:2024/06/05 00:24

1、okhttp3去掉https证书校验的OkHttpClient:

 /**     * 获取OkHttpClient     *     * @return OkHttpClient     */    public static OkHttpClient getUnsafeOkHttpClient() {        try {            final TrustManager[] trustAllCerts = new TrustManager[]{                    new X509TrustManager() {                        @Override                        public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {                        }                        @Override                        public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) {                        }                        @Override                        public java.security.cert.X509Certificate[] getAcceptedIssuers() {                            return new java.security.cert.X509Certificate[]{};                        }                    }            };            final SSLContext sslContext = SSLContext.getInstance("SSL");            sslContext.init(null, trustAllCerts, new java.security.SecureRandom());            final javax.net.ssl.SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();            OkHttpClient.Builder builder = new OkHttpClient.Builder();            builder.sslSocketFactory(sslSocketFactory);            builder.hostnameVerifier(new HostnameVerifier() {                @Override                public boolean verify(String hostname, SSLSession session) {                    return true;                }            });            return builder.build();        } catch (Exception e) {            throw new RuntimeException(e);        }    }

2、现在就可以正常使用okhttpclient了,如果还想在fresco中加入这个网络库,需要在fresco初始化时引入第三方库:

 ImagePipelineConfig.Builder builder = OkHttpImagePipelineConfigFactory                .newBuilder(AppUtils.getContext(), HttpURLConnectionUtil.getUnsafeOkHttpClient());        //BitmapConfig。默认使用RGB_565。该格式对png无效        Bitmap.Config bitmapConfig = Bitmap.Config.RGB_565;        builder.setBitmapsConfig(bitmapConfig);        //内存控制为最大1/8        builder.setBitmapMemoryCacheParamsSupplier(                new BitmapMemoryCacheParamsSupplier((ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE)));        Fresco.initialize(AppUtils.getContext(), builder.build());
原创粉丝点击