Android(安卓)okHttp:Https之SSL - Hostname was not verified
16lz
2021-01-26
欢迎各位访问的博客,博客地址
踩坑篇
项目服务端传输协议换成了https,客户端打接口一直报:Hostname 'url' was not verified
原因:服务端https的证书没有过审
解决方案(直接上代码):
private static void allowAllSSL() { SSLContext sc = null; try { sc = SSLContext.getInstance("SSL"); sc.init(null, new TrustManager[]{new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public X509Certificate[] getAcceptedIssuers() { return null; } }}, new SecureRandom()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (KeyManagementException e) { e.printStackTrace(); } mOkHttpClient.setSslSocketFactory(sc.getSocketFactory()); mOkHttpClient.setHostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { return true; } }); }
主要是这里:
mOkHttpClient.setSslSocketFactory(sc.getSocketFactory()); mOkHttpClient.setHostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { return true; } }); }
具体分析可以去了解下SSL安全协议,这样写之后实际是降低了https的安全性了,不过证书不过审只能这样了。
更多相关文章
- Android图片路径与Uri相互转化
- Android手动签名APK
- Android开发四年面试相关知识整理
- android中的AIDL学习笔记
- android apk 应用 重新签名 方法
- android adb project
- Android中LocalSocket使用
- Android工程Debug证书过期解决方案 -- eclipse
- 做WebView的时候遇到的错误