You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

W/System.err: 在AndroidQ中SSL握手超时的错误

在Android Q中,出现SSL握手超时错误的问题可能是由于网络连接问题或TLS本不兼容导致的。以下是一种解决方法的示例代码:

import android.os.Build;
import android.security.NetworkSecurityPolicy;
import android.util.Log;

import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;

public class SSLUtils {
    private static final String TAG = "SSLUtils";

    public static SSLSocketFactory getSSLSocketFactory() {
        try {
            // 获取默认的SSL上下文
            SSLContext sslContext = SSLContext.getDefault();
            // 获取SSLSocketFactory
            SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();

            // 在Android Q中,需要禁用TLS 1.3以避免握手超时错误
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
                // 获取支持的协议列表
                String[] supportedProtocols = sslSocketFactory.getSupportedProtocols();
                // 创建一个新的SSLSocketFactory,只包含TLS 1.2和TLS 1.1
                sslSocketFactory = new TLSSocketFactory(supportedProtocols);
            }

            return sslSocketFactory;
        } catch (Exception e) {
            Log.e(TAG, "Failed to create SSLSocketFactory: " + e.getMessage());
            return null;
        }
    }

    private static class TLSSocketFactory extends SSLSocketFactory {
        private final SSLSocketFactory delegate;
        private final String[] supportedProtocols;

        public TLSSocketFactory(String[] supportedProtocols) {
            this.delegate = SSLSocketFactory.getDefault();
            this.supportedProtocols = supportedProtocols;
        }

        @Override
        public String[] getDefaultCipherSuites() {
            return delegate.getDefaultCipherSuites();
        }

        @Override
        public String[] getSupportedCipherSuites() {
            return delegate.getSupportedCipherSuites();
        }

        @Override
        public Socket createSocket(Socket socket, String host, int port, boolean autoClose) throws IOException {
            return enableTLSOnSocket(delegate.createSocket(socket, host, port, autoClose));
        }

        @Override
        public Socket createSocket(String host, int port) throws IOException, UnknownHostException {
            return enableTLSOnSocket(delegate.createSocket(host, port));
        }

        @Override
        public Socket createSocket(String host, int port, InetAddress localHost, int localPort) throws IOException, UnknownHostException {
            return enableTLSOnSocket(delegate.createSocket(host, port, localHost, localPort));
        }

        @Override
        public Socket createSocket(InetAddress host, int port) throws IOException {
            return enableTLSOnSocket(delegate.createSocket(host, port));
        }

        @Override
        public Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort) throws IOException {
            return enableTLSOnSocket(delegate.createSocket(address, port, localAddress, localPort));
        }

        private Socket enableTLSOnSocket(Socket socket) {
            if (socket instanceof SSLSocket) {
                // 设置仅启用TLS 1.2和TLS 1.1协议
                ((SSLSocket) socket).setEnabledProtocols(supportedProtocols);
            }
            return socket;
        }
    }
}

在你的网络请求代码中,使用上述的SSLSocketFactory来创建HttpsURLConnection或OkHttpClient实例,并将其设置为默认的SSLSocketFactory。例如:

SSLSocketFactory sslSocketFactory = SSLUtils.getSSLSocketFactory();
if (sslSocketFactory != null) {
    // 使用sslSocketFactory设置HttpsURLConnection
    // HttpsURLConnection.setDefaultSSLSocketFactory(sslSocketFactory);

    // 使用sslSocketFactory设置OkHttpClient
    // OkHttpClient client = new OkHttpClient.Builder().sslSocketFactory(sslSocketFactory).build();
}

这样,在Android Q中就可以避免SSL握手超时的错误了。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

2022技术盘点之平台云原生架构演进之道|社区征文

/gateway 对应 NodePort 的 32000 端口,不仅可以实现高可用,而且七层可以实现 SSL 卸载。- LB:从利用公有云七层负载均衡可以实现根据域名流量转发和负载均衡,SSL的卸载;- NodePort:利用TKE负载均衡的NodePort,实... 可以在k8s的环境下,实现重试,超时,限流,负载均衡等常用功能。##### 4.2.4.2 Spring Cloud Kubernetes 服务注册发现-东西流量Spring Cloud Kubernetes 服务注册发现-东西流量�:![](https://kaliarch-bucket-...

「跨越障碍,迈向新的征程」盘点一下2022年度我们开发团队对于云原生的技术体系的变革|社区征文

以及workaround的问题较多】** 其实新版本与旧版本区别主要在于应用了社区中经过cherrypick挑选出来的PR以及修复了安全性漏洞、没有workaround(临时解决办法)的bug。3. **【稳定性能力】NGINX-Ingress 更加的稳定... Admission Webhook 可以返回警告消息, 传递给发送请求的 API 客户端。警告可以与允许或拒绝的响应一起返回。 - **「Exec探测超时处理(v1.20版本开始)」** 针对于嗅探机制的超时处理机制 - **「添加了对 Pod 层面...

DevOps基于k8s发布系统CI/CD的实现|社区征文

boolean quiet; boolean showErrors = true; Properties userProperties = new Properties(); Properties systemProperties = new Properties(); MavenExecutionRequest request; Cl... //连接镜像仓库5秒超时 System.setProperty("jib.httpTimeout", "5000"); System.setProperty("sendCredentialsOverHttp", "true"); String fileNameWithExtension = targetFiles.get(0).toFile().getName(); ...

纯干货|聊一聊大促活动背后的技术:火山引擎边缘云CDN/DCDN/GA

**火山引擎内容分发网络产品 CDN** (Content Delivery Network)提供稳定、弹性、高性能的全球内容分发服务。- **火山引擎全站加速产品 DCDN** (Dynamic Content Delivery Network) 是一款在 CDN 静态内容加... 因此冷启客户端会进行大量的SSL握手,消耗DCDN节点大量CPU资源;- **QPS突增风险:** 电商API接口请求量(QPS)突增,超过CDN/DCDN/GA处理能力上限,造成服务崩溃;- **请求堆积风险:** 随着QPS突增,活动业务后端服务...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

W/System.err: 在AndroidQ中SSL握手超时的错误-优选内容

2022技术盘点之平台云原生架构演进之道|社区征文
/gateway 对应 NodePort 的 32000 端口,不仅可以实现高可用,而且七层可以实现 SSL 卸载。- LB:从利用公有云七层负载均衡可以实现根据域名流量转发和负载均衡,SSL的卸载;- NodePort:利用TKE负载均衡的NodePort,实... 可以在k8s的环境下,实现重试,超时,限流,负载均衡等常用功能。##### 4.2.4.2 Spring Cloud Kubernetes 服务注册发现-东西流量Spring Cloud Kubernetes 服务注册发现-东西流量�:![](https://kaliarch-bucket-...
客户端使用 SSL 加密连接 MongoDB
表示启用 SSL 加密连接。 您可以通过 mongoc_ssl_opt_t 参数配置 SSL 加密连接。其中:在 ssl_opts.ca_file 字段中设置 CA 证书的路径。 将 ssl_opts.allow_invalid_hostname 字段设置为 false,表示忽略域名检测。 ... writeconcern" "io/ioutil" "log")func main() { var filename = "ca.pem" rootPEM, err := ioutil.ReadFile(filename) roots := x509.NewCertPool() if ok := roots.AppendCertsFromPEM([]byte...
更新集智瘦身配置
Action=UpdateSlimConfig&Version=2018-08-01 请求频率限制:10 次/秒 超时时间:5 秒 说明 veImageX 在全球多个区域部署,每个区域有自己对应的 OpenAPI 域名,不支持跨区域调用。具体详情请查看服务地址。 请求参数... 否则错误在 Err 返回。 示例请求示例json POST https://imagex.volcengineapi.com/?Action=UpdateSlimConfig&Version=2018-08-01&ServiceId=l7***px{ "DoSlim": true, "Domain": "test.volcimagextest.com", ...
客户端使用 SSL 加密连接 Redis
缓存数据库 Redis 版提供了 SSL(Secure Sockets Layer)加密服务,您可以提前开启 SSL 加密功能,在连接数据库时,通过设置 SSL 加密提高数据链路的安全性。本文介绍多语言客户端通过 SSL 加密连接来访问 Redis 数据库... "SslTest:Pwd@1234", 0, true, sslSocketFactory, null, null); try (Jedis jedis = pool.getResource()) { jedis.set("key", "value"); System.out.println(jedis.get("key")); ...

W/System.err: 在AndroidQ中SSL握手超时的错误-相关内容

个性化配置

ALB会在您已选择的加密套件基础上默认添加 TLSv1.3 的三个套件,暂不支持您修改TLSv1.3 的套件。 加密套件(ssl_ciphers) 否 每种协议版本对应支持套件不同,不填写将使用默认加密套件,具体详见协议与加密套件。 长连接保持时间(keepalive_timeout) 否 客户端与 ALB 之间的长连接保持时间,默认75s,输入范围0-900s。 建连超时时间(proxy_connect_timeout) 否 ALB 和后端服务器的建连超时时间,建议大于健康检查超时时间。默认...

2023 年

本文提供视频点播 2023 年的功能发布历史与文档动态。 2023 年 12 月变更 说明 发布时间 相关文档 回调事件 FileUploadByUrlComplete 新增一个回调错误码,OperationDenied.DenyOverwriteUpload:禁止不同文件以相同... 超时时间 配置 HTTP 请求头 配置回源参数 2023-03-08 水印贴片模板 水印贴片 暗水印 工作流模板 视频详情 回源配置 2023 年 2 月变更 说明 发布时间 相关文档 最佳实践 新增 RTC 录制转点播存储管理的文档 新...

媒资管理

const res = await vodOpenapiService.GetMediaInfos(options); //do your work // ... } catch (err) { console.log(err); }};修改媒资信息接口请求参数和返回参数详见 OpenAPI:修改媒资信息。 js... Ssl: "your search ssl type", // 字幕 Url 是否为 HTTPS 地址。默认否, 1(是,返回 HTTPS);0(HTTP) 。 }; const res = await vodOpenapiService.GetSubtitleInfoList(options); // do your work ...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

更新截图配置 V1

"ServiceID": "WMK***UXe"}返回示例json { "ResponseMetadata": { "RequestId": "201806041104200100***", "Action": "UpdateSnapshotPreset", "Version": "2023-01-01", "Service": "live", "Region": "cn-north-1" }}错误码下表仅列出本接口特有的错误码。更多信息请参见公共错误码获取详细信息。 状态码 错误错误信息 说明 200 CommonErr - 未分类错误。建议重试,如果仍返回该错误码,请联系技术支持。 ...

DevOps基于k8s发布系统CI/CD的实现|社区征文

boolean quiet; boolean showErrors = true; Properties userProperties = new Properties(); Properties systemProperties = new Properties(); MavenExecutionRequest request; Cl... //连接镜像仓库5秒超时 System.setProperty("jib.httpTimeout", "5000"); System.setProperty("sendCredentialsOverHttp", "true"); String fileNameWithExtension = targetFiles.get(0).toFile().getName(); ...

纯干货|聊一聊大促活动背后的技术:火山引擎边缘云CDN/DCDN/GA

**火山引擎内容分发网络产品 CDN** (Content Delivery Network)提供稳定、弹性、高性能的全球内容分发服务。- **火山引擎全站加速产品 DCDN** (Dynamic Content Delivery Network) 是一款在 CDN 静态内容加... 因此冷启客户端会进行大量的SSL握手,消耗DCDN节点大量CPU资源;- **QPS突增风险:** 电商API接口请求量(QPS)突增,超过CDN/DCDN/GA处理能力上限,造成服务崩溃;- **请求堆积风险:** 随着QPS突增,活动业务后端服务...

更新域名的域名空间

错误码下表仅列出本接口特有的错误码。更多信息请参见公共错误码获取详细信息。 状态码 错误错误信息 说明 200 CommonErr - 未分类错误。建议重试,如果仍返回该错误码,请联系技术支持。 400 InvalidParam - 输入... 请检查错误消息中指定参数中是否存在非法字符或 URL 格式错误。 403 RequestForbidden - 请求被拒绝,当前账号下无请求的资源(域名空间、域名、应用、配置模版、证书)。 403 RequestForbidden.AccountIDNotAllow th...

系统集成在一些特定行业的相关概念

业务流程标准:使用没有扩展的标准的BPEL4WS,对于业务流程以SOAP服务形式进行访问,业务流程之间的调用通过SOAP。[5]数据交换安全:与外部系统对接需考虑外部访问的安全性,通过IP白名单、SSL认证等方式保证集成互访... 对非法数据和错误数据则拒绝接收,以防止外来数据非法入侵,减轻应用支撑平台系统主机处理负荷。对于接口,其业务数据检查的主要内容有以下几个方面:l 数据格式的合法性:如接收到非预期格式的数据。包括接收的数...

集成抖音小程序加载 SDK

错误兜底:支持自定义图片加载错误时的占位图及错误描述。 稳定性布局:内置 4 种布局,您可根据实际业务灵活配置。 功能点 功能描述 云端依赖 格式自适应 根据客户端兼容情况自动适配不同的格式,例如:webp 自适... Android 端支持使用该组件加载 heif 图,且暂无最低版本要求。 模板配置SDK 内图片格式自适应、分辨率自适应、图片压缩等能力均依赖云端图片处理能力,请您参考以下操作创建具备图片压缩和缩放功能的图片处理模板...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询