关于使用Okhttp导致的证书信任问题

阅读: 评论:0

关于使用Okhttp导致的证书信任问题

关于使用Okhttp导致的证书信任问题

我们通常创建client的方法使用的是这种,但有可能导致证书不受信任,访问不了的问题,比如调试运行时会报如下错误

OKHTTP javax.ssl.SSLHandshakeException

这时候我们不要着急,新建一个工具包,在包里新建如下类,类名随便取就行

unity.utils;import okhttp3.OkHttpClient;import javax.ssl.*;/*** 处理证书不受信任的问题*/
public class OkHttpSSL {//okHttp3添加信任所有证书public static OkHttpClient getUnsafeOkHttpClient() {try {final TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {@Overridepublic void checkClientTrusted(X509Certificate[] chain, String authType) {}@Overridepublic void checkServerTrusted(X509Certificate[] chain, String authType) {}@Overridepublic X509Certificate[] getAcceptedIssuers() {return new X509Certificate[]{};}}};final SSLContext sslContext = Instance("SSL");sslContext.init(null, trustAllCerts, new java.security.SecureRandom());final javax.ssl.SSLSocketFactory sslSocketFactory = SocketFactory();OkHttpClient.Builder builder = new OkHttpClient.Builder();builder.sslSocketFactory(sslSocketFactory);builder.hostnameVerifier(new HostnameVerifier() {@Overridepublic boolean verify(String hostname, SSLSession session) {return true;}});return builder.build();} catch (Exception e) {throw new RuntimeException(e);}}
}

紧接着我们把之前创建client的方法替换为

OkHttpClient client = UnsafeOkHttpClient();

再次运行就不会报错了。

感谢此大佬@哥哥是欧巴Vitory

本文发布于:2024-02-02 11:16:39,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170684379843433.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:证书   Okhttp
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23