OkhttpUtils的https请求

OkhttpUtils的https请求

网络请求中使用OkhttpUtils,原本的http请求没有什么问题。后来,项目中或成了https,所有请求就出问题了。

项目中的OkhttpUtils用的是张鸿洋大神封装的,找到github中大神的主页,蓦然找到了答案。

设置可访问所有的https网站
     HttpsUtils.SSLParams sslParams = HttpsUtils.getSslSocketFactory(null, null, null);
     OkHttpClient okHttpClient = new OkHttpClient.Builder()
                //其他配置
                ...
                .sslSocketFactory(sslParams.sSLSocketFactory, sslParams.trustManager)
                .build();
    OkHttpUtils.initClient(okHttpClient);
设置具体的证书
HttpsUtils.SSLParams sslParams = HttpsUtils.getSslSocketFactory(证书的inputstream, null, null);
OkHttpClient okHttpClient = new OkHttpClient.Builder()
               //其他配置
                ...
                .sslSocketFactory(sslParams.sSLSocketFactory, sslParams.trustManager))
                .build();
OkHttpUtils.initClient(okHttpClient);

如果还是有问题的话,建议在代码中其他配置处加上一句代码:

            .hostnameVerifier(new HostnameVerifier() {
                @Override
                public boolean verify(String hostname, SSLSession session) {
                    return true;
                }
            })
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容