`

使用volley链接Https地址时报SSLHandshakeException

阅读更多
在真实设备上出现以下错误 ︰

Volley error: com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.


模拟器上没出现该错误。


解决方法:
在你的Application onCreate方法中添加如下代码:

/**
     * Enables https connections
     * https://www.itstrike.cn/Question/13b0aa2b-ce37-4243-a488-330980408a64.html
     */
    @SuppressLint("TrulyRandom")
    public static void handleSSLHandshake() {
        try {
            TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
                public X509Certificate[] getAcceptedIssuers() {
                    return new X509Certificate[0];
                }

                @Override
                public void checkClientTrusted(X509Certificate[] certs, String authType) {
                }

                @Override
                public void checkServerTrusted(X509Certificate[] certs, String authType) {
                }
            }};

            SSLContext sc = SSLContext.getInstance("SSL");
            sc.init(null, trustAllCerts, new SecureRandom());
            HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
            HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
                @Override
                public boolean verify(String arg0, SSLSession arg1) {
                    return true;
                }
            });
        } catch (Exception ignored) {
        	
        }
    }


分享到:
评论

相关推荐

    volley支持https请求

    为volley添加https请求支持

    Volley请求HTTPS

    在Android开发中,Volley是一个非常流行的网络请求库,它由Google开发并推荐使用,以其高效、简单和灵活的特点受到广大开发者喜爱。本教程将详细讲解如何在Android 6.0及以上版本中,利用Volley库实现HTTPS请求,...

    volley访问https需要用到的类与库

    4. HttpStack:处理 HTTP/HTTPS 协议的底层实现,Volley 默认使用的是 HurlStack,不支持 HTTPS。 为了使 Volley 支持 HTTPS,我们需要替换默认的 HttpStack 实现。一种常见的方式是使用 OkHttp,它是一个强大的...

    Volley支持https的jar包(修改源码信任所以证书)

    Volley支持https的jar包(修改源码信任所以证书)

    https解决SSLHandshakeException问题.zip

    然而,对于Android 5.0以下的设备,由于SSL/TLS协议栈的限制,可能会遇到`SSLHandshakeException`的问题,这使得应用无法正常地通过HTTPS与服务器建立安全连接。本篇文章将深入探讨这个问题的原因以及如何通过代码...

    Volley支持https的jar包(信任所以证书)

    Volley支持https的jar包(信任所以证书)

    使用volley获取json数据

    ### 使用 Volley 获取 JSON 数据 #### 一、简介 在 Android 开发中,应用程序常常需要与后端服务器进行交互,以获取或发送数据。其中一种常用的技术是使用 Volley 库来处理网络请求。Volley 是一个现代化的网络库...

    使用Volley-jar的包

    在本项目中,"使用Volley-jar的包"是一个包含了Volley库的Android工程,目的是验证打包的Volley库是否能够正常工作。以下是对Volley库及其使用的详细解释。 1. **Volley的特点**: - **快速响应**:Volley通过内存...

    使用volley优化的瀑布流(android)

    "使用volley优化的瀑布流"这一主题,正是关注于如何通过Volley库来提升Android应用的性能,特别是对于图片加载和缓存的优化。Volley是Google推出的一个网络请求库,它设计的目标是快速、高效,特别适合于移动设备上...

    Android网络框架-Volley(一) 初步使用Volley

    在本篇文章中,我们将深入探讨Volley的基本使用,包括其核心组件、网络请求的发起与处理,以及如何在实际项目中集成和配置Volley。 ### Volley的核心组件 1. **RequestQueue**:这是Volley的核心组件,负责管理...

    volley框架的使用

    在你的压缩包中,可能包含了使用Volley的示例代码(Dome)和详细的说明文档,这可以帮助你更深入地理解和应用Volley框架。通过阅读这些示例和文档,你将能够了解如何处理不同类型的网络请求,如何配置缓存策略,以及...

    volley 获取json数据

    在本主题中,我们将深入探讨如何使用 Volley 获取 JSON 数据,特别是在处理中文乱码问题以及解析 JSON 对象来获取天气信息。 首先,Volley 的核心优势在于其缓存机制和线程管理。通过内部的请求队列,Volley 可以...

    使用Volley 天气预报app

    在"使用Volley天气预报app"中,开发者利用Volley库来获取并显示天气预报信息。这个应用程序展示了如何有效地利用Volley的`StringRequest`和`JsonRequest`来处理不同类型的数据。 1. **Volley基础**: - **Volley...

    Android使用Volley实现图片轮播

    本文将详细介绍如何在Android项目中使用Volley库来实现图片轮播。 首先,我们需要在项目中集成Volley库。这可以通过在build.gradle文件中添加依赖来实现: ```gradle dependencies { implementation '...

    harmonyos2-android-https-volley:androidhttps使用volley

    volley 使用自签名服务器证书从 Android 向服务器发送 https 请求时需要此模块。 为什么你应该阅读这篇文章 要在 Android 中使用 https 进行通信,请遵循与发送 http 请求相同的方法。 URL url = new URL ( " ...

    使用Volley框架GET从网络上获取数据

    本文将深入探讨如何使用Volley框架通过GET方法从网络获取数据。 一、Volley概述 Volley是Android平台上的一个网络通信库,它的设计目标是简化网络请求并优化内存使用。Volley提供了异步网络请求、请求队列管理、...

    android最新网络框架Volley使用实例

    Volley以其高效、灵活和易于使用的特性,成为许多Android开发者首选的网络库。 首先,我们来详细了解一下Volley的核心特性: 1. **缓存策略**:Volley提供了内存和磁盘两级缓存机制,可以有效地减少网络请求,提高...

    android Volley的基本使用详解

    Volley是Android平台上的一个网络库,由Google开发并推荐使用,主要针对移动设备的特点进行了优化,特别适合处理大量的小数据量的网络请求。Volley提供了高效、易用且功能丰富的网络通信框架,使得开发者可以方便地...

    使用Volley框架POST从网络上获取数据

    在Android项目中使用Volley,首先需要添加依赖。如果使用的是Gradle构建系统,可以在app级别的build.gradle文件中添加以下依赖: ```groovy dependencies { implementation 'com.android.volley:volley:1.2.1' ...

    volley使用的demo

    这个“Volley使用的demo”是一个实际应用示例,演示了如何利用Volley框架来加载网络图片。下面我们将深入探讨Volley的关键特性和在Android应用程序中的使用方法。 ### 1. Volley简介 Volley设计的核心目标是速度和...

Global site tag (gtag.js) - Google Analytics