首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

安卓(23) - Smack (4.1.8) - XMPP - "SSL23_GET_SERVER_HELLO:unknown协议“错误

安卓(23) - Smack (4.1.8) - XMPP - "SSL23_GET_SERVER_HELLO:unknown协议"错误

安卓(23)是指Android操作系统的版本号,表示Android 6.0(Marshmallow)。

Smack (4.1.8)是一个开源的XMPP(Extensible Messaging and Presence Protocol)客户端库,用于在应用程序中实现即时通讯功能。

XMPP是一种基于XML的开放式通信协议,用于实现实时通信和在线状态管理。

"SSL23_GET_SERVER_HELLO:unknown协议"错误是指在使用Smack库进行XMPP通信时,出现了无法识别的SSL协议错误。

这个错误通常是由于服务器端使用了不受支持的SSL协议版本或加密算法导致的。

解决这个错误的方法是通过配置Smack库的SSL/TLS参数来适配服务器端的SSL协议版本和加密算法。

具体步骤如下:

  1. 确认服务器端的SSL协议版本和加密算法要求。
  2. 在Smack库中,使用ConnectionConfiguration类的setCustomSSLContext()方法来设置自定义的SSL上下文。
  3. 创建一个自定义的SSL上下文对象,并通过SSLContext类的getInstance()方法获取SSLContext实例。
  4. 通过SSLContext实例的init()方法,配置SSL/TLS参数,包括协议版本、加密算法等。
  5. 将自定义的SSL上下文对象传递给setCustomSSLContext()方法。

以下是一个示例代码片段,展示了如何配置Smack库的SSL/TLS参数:

代码语言:java
复制
import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.SmackException;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.tcp.XMPPTCPConnection;
import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration;

import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

public class XMPPClient {
    public static void main(String[] args) {
        try {
            // 创建自定义的SSL上下文
            SSLContext sslContext = SSLContext.getInstance("TLS");
            sslContext.init(null, new TrustManager[]{new X509TrustManager() {
                public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
                }

                public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
                }

                public X509Certificate[] getAcceptedIssuers() {
                    return new X509Certificate[0];
                }
            }}, null);

            // 创建连接配置
            XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
                    .setHost("your_server_host")
                    .setPort(5222)
                    .setCustomSSLContext(sslContext) // 设置自定义的SSL上下文
                    .setHostnameVerifier((hostname, session) -> true) // 忽略主机名验证
                    .build();

            // 创建连接
            XMPPTCPConnection connection = new XMPPTCPConnection(config);
            connection.connect();
            connection.login("username", "password");

            // 进行其他操作...

            connection.disconnect();
        } catch (XMPPException | SmackException | NoSuchAlgorithmException | KeyManagementException e) {
            e.printStackTrace();
        }
    }
}

在这个示例中,我们创建了一个自定义的SSL上下文对象,并通过setCustomSSLContext()方法将其传递给连接配置。同时,为了简化示例,我们忽略了主机名验证,但在实际应用中,建议进行主机名验证以确保连接的安全性。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动推送:提供稳定可靠的移动消息推送服务,支持Android和iOS平台。详情请参考:腾讯云移动推送
  • 腾讯云SSL证书:提供全球领先的SSL证书服务,保障网站和应用的数据传输安全。详情请参考:腾讯云SSL证书

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

B4A编程开发路线001_Android基础

SDK与JDK版本对照参考如下表,参考: 最新安版本对照表,API对照表,持续更新_内核版本对照表_雨季余静的博客-CSDN博客,Android各版本对应的SDK及JDK版本要求_android...常规设备内置了多种系统应用程序(我们一般不能随意卸载的),比如联系人、短信、电话、日历、时钟、浏览器等。...Services XMPP 服务—— 用于主持XMPP协议的服务,比如与Google Talk通信等 3、Libraries(函数库)和Android Runtime(运行时) 3.1、Libraries...SSL:位于TCP/IP协议与各种应用层协议之间,为数据通信提供支持。是安全数据通信的支持。 WebKit/LibWebCore:是一个开源的浏览器引擎。...3.2、Android Runime 运行时 Android Runime 运行时是由Java核心类库(Core Libraries)和Android虚拟机(Dalvik)共同构成

99470
  • xmpp即时通讯二

    5) version—版本属性出现设到至少是“1.0”信号值,支持定义在说明书中的相关流协议(包括流特征)。...1.0 support |  signals XMPP 1.0 support 4.4.1版本支持       XMPP版本在此指定为“1.0”,特别的,这封装了流相关协议(TLS应用(5),SASL...6)--由初始实体在流头中提供的‘to’属性值于服务器所拥有的主机名不一致。      ...23)由初始实体在流头提供的版本属性值指定了一个不被服务器支持的XMPP版本;服务器可能在元素中指定它支持的版本。      ...此信道加密方法利用传输层安全(TLS)协议[TLS],连同“STARTTLS”扩展,在为描述在 RFC 2595[USINGTLS]中的IMAP[IMAP],POP3[POP3],ACAP[ACAP]等相似协议扩展模型

    2K80

    awesome-java-cn

    官网 Error Prone:将常见编程错误作为运行时错误报告。官网 FindBugs:通过字节码静态分析查找隐藏bug。官网 jQAssistant:使用基于Neo4J查询语言进行代码静态分析。...官网 IntelliJ IDEA:支持众多JVM语言,是开发者好的选择。商业版主要针对企业客户。...官网 Picasso:图片下载和图片缓存开发库。官网 Thumbnailator:Thumbnailator是一个高质量Java缩略图开发库。...官网 Kotlin:JetBrain针对JVM、和浏览器提供的静态类型编程语言。官网 Xtend:一种静态编程语言,能够将其代码转换为简洁高效的Java代码,并基于JVM运行。...官网 Smack:跨平台XMPP客户端函数库。官网 Openfire:是开源的、基于XMPP、采用Java编程语言开发的实时协作服务器。

    4.1K80

    ipa文件怎么安装到iPhone手机上?

    无需越狱帮你把ipa文件安装到苹果手机上E86苹果签名简介:点击可查看很多人都知道apk文件是的app应用程序文件名,但有人知道苹果ios的app应用程序app是什么样的文件名吗? 是ipa文件。...苹果手机和系统不同,各种程序的安装都要经过严格的审查,安装起来很复杂。...无法启动最新版本部分电脑有兼容问题,可以下老一点的版本(带数字标记的是老版本),例如appuploader_win_0608.zip appuploader 老版本don't have access,提示没权限或同意协议下面几个错误是是因为苹果更新了协议...,请登录苹果官网同意协议。...2021-12-23 15:10:19 CST ERROR: There was a general exception while executing2021-12-23 15

    1.8K10

    1000套(Android)毕业设计(带论文)、大作业、实例快速下载 (Android Studio)

    毕业设计 基于Android手机平台的买火车票软件的设计与实现.zip 21 毕业设计 基于Android图书管理系统开发(最终) .zip 22 毕业设计 基于Android的五子棋游戏设计.zip 23...基于Android的Android下拉刷新控件(ListView好ScrollView版).zip 118 毕业设计 基于Android的C语言嵌入式.zip 119 毕业设计 基于Android的XMPP...实例或大作业 开发-中国象棋(有错误).zip 188 实例或大作业 开发-引导界面viewPager.zip.zip 189 实例或大作业 开发-音乐播放器源码.zip 190 实例或大作业....zip 400 实例或大作业 开发-精仿QQ设置界面.zip 401 实例或大作业 开发-获取Android系统程序信息.zip 402 实例或大作业 开发-基于XMPP的即时聊天项目....678 实例或大作业 开发-【仿微信即时聊天】xmpp4Android 第一期.zip 679 实例或大作业 开发-360新版特性界面源代码.zip 680 实例或大作业 开发-[]PM25

    3.1K30

    《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(4)-Charles如何设置捕获会话

    会自动与浏览器设置成代理,不需要进行过多的设置,接下来我就就是通过浏览器发送网络请求,Charles就会直接抓取到这些信息和响应信息,如下图所示: 细心地小伙伴或者童鞋们从上图可以看到宏哥的图中抓取的是http协议的...web网址,因为宏哥的Charles还没有设置如果抓取https协议的web网址,会报一些错误导致演示不成功,因此宏哥使用http协议的网址进行演示。...如下图所示: 5.1.2移动端设置 (1)Android手机 手机上进行设置:同一个wifi下设置代理,应该是长按连接的WIFI,点击“修改网络”。...6.接下里验证下手机请求,当我们看到Charles里能抓到这个连接,就说明配置没问题,看到unknown,这个不要紧,那是我们没有安装针对手机端的证书,手机端HTTPS证书安装宏哥后边会有详细介绍,这里简单说明一下原因一笔带过...,其实和Fiddler差不多,一样的思路,但是此时应该是可以抓取Http协议的包的。

    1.8K60

    高级自动化测试常见面试题(Web、App、接口)

    本地环境:app 安装的手机环境和电脑搭建的自动化测试环境(比如 SDK 等等)。 服务器环境:war 包部署的服务器, 服务器可以通过浏览器访问, 也可以通过 app 去访问。...9.中如何取出日志信息?...缓存垃圾过多:由于系统的特性,如果长时间不清理垃圾文件.会导致越来越卡.也会出现闪退情况. 运行的程序过多,导致内存不足 应用版本兼容问题:如果应用版本太低,会导致不兼容,造成闪退。...两者运行机制不同:IOS采用的是沙盒运行机制,采用的是虚拟机运行机制。 两者后台制度不同:IOS中任何第三方程序都不能在后台运行;中任何程序都能在后台运行,直到没有内存才会关闭。...23.接口自动化中的关联怎么处理?

    4.2K30

    万字自动化测试面试题,助你吊打面试官

    下载 jdk 和 sdk 2. 安装 jdk, 配置环境变量(java_home、 classpath、 path) 22. 请简要介绍一下移动应用及其服务端的测试点? 1....中如何取出日志信息? 1. 把系统日志信息实时导入到本地: adb logcat -v time > d:\mylog.log 2....缓存垃圾过多:由于系统的特性,如果长时间不清理垃圾文件.会导致越来越卡.也会出现闪退情况. 运行的程序过多,导致内存不足 应用版本兼容问题:如果应用版本太低,会导致不兼容,造成闪退。...请简单介绍一下使用过的UI自动化测试工具? 答案:appium:是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的。...两者运行机制不同:IOS采用的是沙盒运行机制,采用的是虚拟机运行机制。 2. 两者后台制度不同:IOS中任何第三方程序都不能在后台运行;中任何程序都能在后台运行,直到没有内存才会关闭。

    96020

    Android版ChatGPT将于本周发;C-Eval中文大模型排名公布;我国发布首份汽车标准必要专利研究报告丨每日大事件

    易冲推出两款无线充电芯片:覆盖发射接收端,支持Qi2协议 7月23日消息,易冲推出两款无线充电芯片CPS8200和CPS4041,前者为发射端芯片,后者为接收端芯片,均支持Qi2无线充电协议。...Qi2无线充电协议是WPC最新推出的无线充电标准,相比目前的Qi标准,Qi2 采用了磁功率分布图技术,号称可确保设备与充电器完美匹配,从而提高能效。...版谷歌App将推出基于生成式 AI 的“网页总结”功能 7月24日消息,据PhoneArena 、9to5Google等外媒报道,在端最新谷歌App中,部分代码显示内置的“谷歌助理”将加入基于生成式...不过现阶段该功能暂不开放使用,外媒测试发现点击该按钮之后,只会弹出“出现错误,请在几分钟内重试”的提示框。...ChatGPT版可以免费下载,该应用程序也可以免费使用,也可以使用ChatGPTPlus,这是一个付费版本的应用程序,可以访问ChatGPTPlus。

    22630

    速看,APP测试之ADB最全指南!

    5.自己的手机通过USB线连接电脑: (1)确保手机已经通过USB线连接到电脑; (2)通过驱动软件,驱动精灵/驱动人生等,将android手机驱动安装好; (3)进入到手机,找到设置>关于手机>点击版本号...7.使用模拟器连接电脑 (1)Android模拟器和真实的android设备连接是有区别的,如果使用的是genymotion模拟器,在模拟器已经设置了,所以genymotion模拟器会自动帮你加载连接...获取设备的状态,设备的状态有 device , offline , unknown3种,其中device:设备正常连接,offline:连接出现异常,设备无响应,unknown:没有连接设备。...adb logcat adb logcat -c 6.生成bugreport文件:adb bugreport , 打印dumpsys、dumpstate、logcat的输出,也是用于分析错误,输出比较多...21.列出对应包名的 .apk 位置:adb shell pm path 包名 adb shell pm path 22.查看当前终端中的进程信息:adb shell ps adb shell ps 23

    1.6K30

    Android WebView 诊断与排查问题的方法和技巧

    WebView,是中很重要的一个组件,我们的应用中集成WebView后,可能会遇到各种各样的问题,这里简单介绍一些Android WebView 诊断与排查问题的方法,希望对于大家有这方面的问题的朋友有所帮助...开启DiagnosableWebViewClient日志输出 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27...* import com.droidyue.common.debugMessage import com.droidyue.webview.ext.toSimpleString /** * 诊断(错误信息...)的WebViewClient,会以日志输出形式输出错误信息,便于发现网页的问题 */ open class DiagnosableWebViewClient : WebViewClient() {...所以,我们按照这篇文章解决Android手机连接Charles Unknown问题的方案,允许App在debug版本下信任用户证书就可以解决问题了。

    1.7K30

    登录功能的需求分析和测试点

    TextBox和按钮是否对齐 2、TextBox和按钮的长度,高度是否符合要求 3、界面的设计风格是否与UI的设计风格统一 4、界面中的文字简洁易懂,没有错别字 5、默认鼠标焦点定位 6、ios需要用隐私协议...二、功能测试 (1)输入正确的用户名和正确的密码 (2)输入正确的用户名和错误的密码 (3)输入错误的用户名 (4)用户名和密码含前中后空格 (5)用户名和密码都不输入 (6)只输入用户名,密码为空...19)后台系统创建的用户第一次登录成功时,是否提示修改密码 (20)用户名很长,但不超过字段限制,是否有问题 (21) 多个登录方式登录同个账号是否可以正常登录 (22) 扫码登录是否可以正常 登录 (23...)ios端必须选择隐私协议才能登录 三、安全测试 1、密码框显示*,密码是否都可以在页面源码模式下被查看,以及密码强弱性校验 2、是否支持复制粘贴 3、在后台存储与网络传输中是否加密 4、不登录直接输入后台页面地址能否访问...---如QQ、支付宝 (2)同一用户多个浏览器登录 (3)多个浏览器登录,用户是否串号 (4) 浏览器登录后,app登录, (5) app登录 iosapp登录是否互踢 14、用户登录过程中log

    2.5K20
    领券