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

SSLHandshakeException但只在Android12上发生?

由于Android 12对SSL证书的处理方式发生了变化,可能会导致某些SSL链接出现SSLHandshakeException异常。解决方法是在应用程序中关闭TLSv1.3协议:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
    SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
    sslContext.init(null, null, null);
    HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
    HttpsURLConnection.setDefaultHostnameVerifier((hostname, session) -> true);
}

在Android 12以上本中,覆盖默认的SSLSocket实现可能会导致问题,因此使用SSLContext实例表示的特定协议,使应用程序忽略默认的SSL实现。

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

社区干货

从《孤注一掷》出发,聊聊 SSL 证书的重要性

以及作为网络通信安全基石的 SSL 证书的重要性。## HTTP 协议HTTP(Hyper Text Transfer Protocol)协议是超文本传输协议。它是从 WEB 服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。HTTP 基于 TCP/IP ... 发送“Encrypted Handshake Message”消息,表示客户端的握手阶段已经结束。客户端会生成所有握手报文数据的摘要,并用会话密钥加密后发送给服务端,供服务端校验。第四次握手:服务端收到客户端的消息后,利用自己...

计算引擎在K8S上的实践|社区征文

createDatabaseIfNotExist=true&useSSL=false - --hiveconf - javax.jdo.option.ConnectionDriverName=com.mysql.jdbc.Driver - --hiveconf - javax.jdo.option.... catch (Exception e) { throw new TaskException("fail to create job", e); }}```这里需要传入提交资源的自定义信息,我们可以通过查看自定义crd的定义yaml文件来获取。(spark-operator部署完成后...

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

list = null; try { list = gitLabApi.getRepositoryApi().getBranches(param.getProjectIdOrPath(), param.getBranchName()); } catch (GitLabApiException e) { LogUtils.throwException(logger, e, Messa... .setVerifyingSsl(false) .setAuthentication(new AccessTokenAuthentication(accessToken)).build(); apiClient.setConnectTimeout(connectTimeout); apiClient.setReadTimeout(readTimeout); return apiCl...

Redis 使用 List 实现消息队列有哪些利弊?|社区征文

异常的话可以继续从 「redisMQBack」再次读取消息处理。![redis消息确认机制](https://magebyte.oss-cn-shenzhen.aliyuncs.com/redis/redis备份队列.png)**需要注意的是,如果生产者消息发送的很快,而消费者处理... catch (InterruptedException e) { e.printStackTrace(); } } /** * 从队列尾部阻塞读取消息,若没有消息,线程就会阻塞等待新消息插入,防止 CPU 空转 */ public void ...

特惠活动

热门爆款云服务器

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

域名注册服务

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

DCDN国内流量包100G

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

SSLHandshakeException但只在Android12上发生? -优选内容

客户端使用 SSL 加密连接 Redis
import javax.net.ssl.SSLSocketFactory;import javax.net.ssl.TrustManager;import javax.net.ssl.TrustManagerFactory;import org.apache.commons.pool2.impl.GenericObjectPoolConfig;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;public class JedisSSLTest { private static SSLSocketFactory createTrustStoreSSLSocketFactory(String jksFile) throws Exception { KeyStore trustSt...
生产并消费消息(SSL 方式)
如果项目使用Gradle构建,请添加如下依赖: java compile 'com.rabbitmq:amqp-client:5.12.0' 连接实例并生产消息。为了提高稳定性和可用性,建议参考实例代码,开启客户端自动重连、Publish Confirm等机制。 java pac... throws Exception{ ConnectionFactory factory = new ConnectionFactory(); // 设置接入点,在RabbitMQ版控制台实例详情页面查看 factory.setHost(host); // 设置端口,AMQP协议SSL加密...
客户端使用 SSL 加密连接 MongoDB
文档数据库 MongoDB 版提供了 SSL(Secure Sockets Layer)加密服务,您可以提前开启 SSL 加密功能,在连接数据库时,通过设置 SSL 加密提高数据链路的安全性。本文介绍多语言客户端通过 SSL 加密连接来访问 MongoDB 数... settings.SslSettings = sslSettings; // 初始化客户端。 MongoClient client = new MongoClient(settings); } catch (Exception e) { Consol...
从《孤注一掷》出发,聊聊 SSL 证书的重要性
以及作为网络通信安全基石的 SSL 证书的重要性。## HTTP 协议HTTP(Hyper Text Transfer Protocol)协议是超文本传输协议。它是从 WEB 服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。HTTP 基于 TCP/IP ... 发送“Encrypted Handshake Message”消息,表示客户端的握手阶段已经结束。客户端会生成所有握手报文数据的摘要,并用会话密钥加密后发送给服务端,供服务端校验。第四次握手:服务端收到客户端的消息后,利用自己...

SSLHandshakeException但只在Android12上发生? -相关内容

Java SDK(AMQP 协议)

可以在代码中添加factory.useSslProtocol();,此时需要使用 AMQP 协议的公网地址和端口。 消息生产的示例代码如下。 Java import com.rabbitmq.client.*;import java.io.IOException;import java.nio.charset.Stan... factory.setHandshakeTimeout(30 * 1000); factory.setShutdownTimeout(0); // 下列是消息发布的AMQP-0-9-1协议对象配置 final String vhost = "/"; final String exchange =...

初始化客户端(Android SDK)

Android 移动端是一个不受信任的环境,把 accessKey 和 secretKey 直接保存在移动端用来为请求进行签名,风险较高。强烈建议使用 STS 参数创建 TOSV2Client。STS (Security Token Service) 是一种授权第三方用户临时... 发生了读异常,如 java.io.IOException: unexpected end of stream,则不进行重试。 重试策略 Android SDK 根据设置的重试次数进行指数退避重试,默认重试次数为 3 次。 示例代码 以下代码展示如何设置 SDK 的重试次...

音视频播放

setAccessKey("");// $client->setSecretKey("");$vid = "your vid";$expire = 600; // token有效期$req = new VodGetPlayInfoRequest();$req->setVid($vid);$req->setSsl('1');try { $response = $client->getPlayAuthToken($req,$expire);} catch (Exception $e) { echo $e, "\n";} catch (Throwable $e) { echo $e, "\n";}echo $response; 获取播放地址接口请求参数和返回参数详见OpenAPI:获取播放地址。 php setAcc...

热门爆款云服务器

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

域名注册服务

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

DCDN国内流量包100G

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

计算引擎在K8S上的实践|社区征文

createDatabaseIfNotExist=true&useSSL=false - --hiveconf - javax.jdo.option.ConnectionDriverName=com.mysql.jdbc.Driver - --hiveconf - javax.jdo.option.... catch (Exception e) { throw new TaskException("fail to create job", e); }}```这里需要传入提交资源的自定义信息,我们可以通过查看自定义crd的定义yaml文件来获取。(spark-operator部署完成后...

媒资管理

throws Exception { IVodService vodService = VodServiceImpl.getInstance(); vodService.setAccessKey("your ak"); vodService.setSecretKey("your sk"); try { com.vo... String ssl = "ssl"; String offset = "offset"; String pageSize = "pageSize"; try { VodGetSubtitleInfoListRequest.Builder req = VodGetSubtitleInfoListRequest.ne...

音视频播放

throws Exception { IVodService vodService = VodServiceImpl.getInstance(); String vid = "your vid"; // call below method if you dont set ak and sk in ~/.vcloud/config // ... reqBuilder.setSsl("your Ssl"); reqBuilder.setNeedThumbs("your NeedThumbs"); reqBuilder.setNeedBarrageMask("your NeedBarrageMask"...

崩溃监控

在全局变量中设置崩溃监控启动参数。 调用InitCrashServer/InitCrashServerOnWin,确保返回值为true。 发生crash后,crash文件存储路径下会生成.dmp结尾的文件。mac/linux:在dump_dir(业务方传入)/pending文件夹下 w... com.apple.security.temporary-exception.mach-lookup.global-name com.apple.security.temporary-exception.mach-register.global-name 类型是String, Value是com.bytedance.parfait.child_port_handshake.$iden...

RabbitMQ 队列高可用

如果节点发生故障,队列中的消息可能会丢失。如果仍然需要使用 Classic 队列,您也可以通过rabbitmq_consistent_hash_exchange插件实现 Classic 队列高可用。rabbitmq_consistent_hash_exchange是 RabbitMQ 提供的一... throws IOException, TimeoutException, NoSuchAlgorithmException, KeyManagementException, InterruptedException { // 下列变量按照实际情况进行配置。 final String host = "xxxxxxx.rabbitmq....

媒资管理

except Exception: raise else: print(resp) if resp.ResponseMetadata.Error.Code == '': print(resp.Result) else: print(resp.ResponseMetadata.Err... ssl' req8.Offset = 'offset' req8.PageSize = 'pageSize' resp8 = vod_service.get_subtitle_info_list(req8) except Exception: raise else: print(resp8) if ...

特惠活动

热门爆款云服务器

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

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

一键开启云上增长新空间

立即咨询