开发手记--使用OkHttp忽略HTTPS验证
来源:互联网 发布:淘宝怎么做话费充值 编辑:程序博客网 时间:2024/06/06 19:03
这里是与Retrofit2结合使用,所以写了一个静态方法,方便Retrofit调用
记录代码:
public static OkHttpClient getClient() { TrustManager[] trustManager = 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() { X509Certificate[] x509Certificates = new X509Certificate[0]; return x509Certificates; } } }; OkHttpClient.Builder client = new OkHttpClient.Builder(); //设置log打印日志 HttpLoggingInterceptor interceptor=new HttpLoggingInterceptor( new HttpLoggingInterceptor.Logger() { @Override public void log(String message) { Log.e("OkHTTP", message); } } ); interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); try { SSLContext sslContext = SSLContext.getInstance("SSL"); sslContext.init(null, trustManager, new SecureRandom()); SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory(); client.addInterceptor(interceptor); client.connectTimeout(DEFAULT_TIMEOUT, TimeUnit.SECONDS); client.sslSocketFactory(sslSocketFactory); client.hostnameVerifier(new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { return true; } }); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (KeyManagementException e) { e.printStackTrace(); } return client.build(); }
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxxx.android/com.xxxxActivity}: java.lang.NullPointerException: Attempt to get length of null array
E/AndroidRuntime(9669): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2623)
E/AndroidRuntime(9669): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2687)
E/AndroidRuntime(9669): at android.app.ActivityThread.access$800(ActivityThread.java:177)
E/AndroidRuntime(9669): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1557)
E/AndroidRuntime(9669): at android.os.Handler.dispatchMessage(Handler.java:111)
E/AndroidRuntime(9669): at android.os.Looper.loop(Looper.java:199)
E/AndroidRuntime(9669): at android.app.ActivityThread.main(ActivityThread.java:5755)
E/AndroidRuntime(9669): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(9669): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(9669): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:982)
E/AndroidRuntime(9669): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:777)
报错是因为
@Override public X509Certificate[] getAcceptedIssuers() { X509Certificate[] x509Certificates = new X509Certificate[0]; return x509Certificates; }
返回了 null
- 开发手记--使用OkHttp忽略HTTPS验证
- okhttp使用https忽略证书验证
- okhttp使用https忽略证书验证
- 使用okhttp忽略https的证书认证
- OKHttp HTTPS 请求支持所有Https服务器 证书验证忽略客户端证书,(3)
- okhttp网络框架的https协议之忽略证书验证的登录实例
- Retrofit忽略Https安全验证
- okHttp 使用HTTPS证书
- 使用okhttp设置https
- https 证书验证 okhttp https设置
- 微信开发中使用curl忽略https证书
- Android开发okhttp接入https
- OKhttp使用双向验证
- OKHttp HTTPS 请求证书验证 PEM证书
- okhttp和webview跳过https证书验证
- okhttp的https的使用
- iOS https请求 忽略证书验证
- Https请求忽略证书验证最新实现
- Eclipse背景色、主题、字体设置
- Mybatis JPA-集成方案+源码
- 结构型-桥接模式(Bridge)
- 表格生成pdf
- word标题不自动编号
- 开发手记--使用OkHttp忽略HTTPS验证
- 51.多皇后问题
- 数据结构实验之二叉树二:遍历二叉树
- springboot(十四):springboot整合shiro-登录认证和权限管理
- Codeforces 821E Okabe and El Psy Kongroo(Dp+矩阵快速幂)
- 一步一步学SpringDataJpa——JpaRepository查询功能
- Maven 进阶--- 引用lib下的本地jar
- java多态_03
- 剑指offer--左旋转字符串