分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

在okhttp3,WebView中忽略HTTPS证书校验

发布时间:2023-09-06 02:18责任编辑:熊小新关键词:Webhttp

在APP开发过程中,后台使用的可能是自签的Https证书,如果不忽略证书校验,会出现Trust anchor for certification path not found的错误

Okhttp3忽略HTTPS证书校验

import java.security.SecureRandom;import java.security.cert.X509Certificate;import javax.net.ssl.HostnameVerifier;import javax.net.ssl.SSLContext;import javax.net.ssl.SSLSession;import javax.net.ssl.SSLSocketFactory;import javax.net.ssl.TrustManager;import javax.net.ssl.X509TrustManager;public class SSLSocketClient { ???public static SSLSocketFactory getSSLSocketFactory() { ???????try { ???????????SSLContext sslContext = SSLContext.getInstance("SSL"); ???????????sslContext.init(null, getTrustManager(), new SecureRandom()); ???????????return sslContext.getSocketFactory(); ???????} catch (Exception e) { ???????????throw new RuntimeException(e); ???????} ???} ???private static TrustManager[] getTrustManager() { ???????TrustManager[] trustAllCerts = new TrustManager[]{ ???????????????new X509TrustManager() { ???????????????????@Override ???????????????????public void checkClientTrusted(X509Certificate[] chain, String authType) { ???????????????????} ???????????????????@Override ???????????????????public void checkServerTrusted(X509Certificate[] chain, String authType) { ???????????????????} ???????????????????@Override ???????????????????public X509Certificate[] getAcceptedIssuers() { ???????????????????????return new X509Certificate[]{}; ???????????????????} ???????????????} ???????}; ???????return trustAllCerts; ???} ???public static HostnameVerifier getHostnameVerifier() { ???????HostnameVerifier hostnameVerifier = new HostnameVerifier() { ???????????@Override ???????????public boolean verify(String s, SSLSession sslSession) { ???????????????return true; ???????????} ???????}; ???????return hostnameVerifier; ???}}
sClient = new OkHttpClient.Builder() ???????.connectTimeout(10, TimeUnit.SECONDS) ???????.readTimeout(10, TimeUnit.SECONDS) ???????.writeTimeout(10, TimeUnit.SECONDS) ???????.sslSocketFactory(SSLSocketClient.getSSLSocketFactory()) ???????.hostnameVerifier(SSLSocketClient.getHostnameVerifier()) ???????.build();

WebView忽略HTTPS证书校验

 ???????wv.setWebViewClient(new WebViewClient() { ???????????@Override ???????????public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { ???????????????handler.proceed();//忽略证书错误继续加载页面 ???????????} ???????});

在okhttp3,WebView中忽略HTTPS证书校验

原文地址:https://www.cnblogs.com/Potato-Eater/p/9792725.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved