洪洋okhttpUtils使用问题记录

1.https如何配置忽略验证证书信息:application 的oncreate方法中添加

HttpsUtils.SSLParams sslParams = HttpsUtils.getSslSocketFactory(null, null, null);
        OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .connectTimeout(10000L, TimeUnit.MILLISECONDS)
                .readTimeout(10000L, TimeUnit.MILLISECONDS)
                //下面两个方法来配置忽略证书验证,信任所有https网站
                .sslSocketFactory(sslParams.sSLSocketFactory, sslParams.trustManager)
                .hostnameVerifier(new HostnameVerifier() {
                    @Override
                    public boolean verify(String hostname, SSLSession session) {
                        return true;
                    }
                })
                .build();

        OkHttpUtils.initClient(okHttpClient);

2.https请求报401错误:

 有些网络请求是需要用户名密码登录的,如果没提供登录需要的信息,那么会得到401 Not Authorized未授权的错误,这时候Okhttp会自动查找是否配置了Authenticator,如果配置过Authenticator,会用Authenticator中包含的登录相关的信息构建一个新的Request,尝试再次发送HTTP请求。

在application的oncreate

HttpsUtils.SSLParams sslParams = HttpsUtils.getSslSocketFactory(null, null, null);
        OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .connectTimeout(10000L, TimeUnit.MILLISECONDS)
                .readTimeout(10000L, TimeUnit.MILLISECONDS)
                .sslSocketFactory(sslParams.sSLSocketFactory, sslParams.trustManager)
                .hostnameVerifier(new HostnameVerifier() {
                    @Override
                    public boolean verify(String hostname, SSLSession session) {
                        return true;
                    }
                })
                .authenticator(new Authenticator() {//解决401,解决未授权问题,这个方法每次请求时都会调用
                    @Override
                    public Request authenticate(Route route, Response response) {
                        return response.request().newBuilder()
                                .header("Authorization", mTokenType + " " + mToken)//这里需要配置登录的token 或者服务器需要的其他参数一起发过去
                                .build();
                    }
                })
                .build();

        OkHttpUtils.initClient(okHttpClient);

方法中添加如下配置

你可能感兴趣的:(工作记录)