Login Smack:XMPPException.getXMPPError()和XMPPException.getStreamError()的登录用户名/密码错误,返回Null
我到处都搜索过,但找不到答案:当我尝试使用无效的登录用户名/密码登录任何XMPP服务器(我的Openfire设置,talk.google.com,jabber.org)时,抛出的XMPPException(消息:SASL身份验证失败:未授权)不包含任何XMPPError或StreamError(两者均为空) 最奇怪的是,Spark Java XMPP客户端使用与我相同的Smack版本(v3.2.2)(我甚至将我的版本与Spark版本进行了交换)可以使用getXMPPError处理无效的登录凭据,它返回实际的XMPP错误对象,而不是null!这怎么可能呢 我查了一下火花源,什么也查不出来。我尝试了无数的变化——各种各样的连接配置设置,连接到其他Jabber/XMPP服务器,但毫无帮助。我甚至用Wireshark嗅探服务器的响应,它们对于Spark和我的应用程序都是一样的 我最终解析了该死的返回字符串“SASL身份验证失败:未授权”Login Smack:XMPPException.getXMPPError()和XMPPException.getStreamError()的登录用户名/密码错误,返回Null,login,xmpp,smack,sasl,Login,Xmpp,Smack,Sasl,我到处都搜索过,但找不到答案:当我尝试使用无效的登录用户名/密码登录任何XMPP服务器(我的Openfire设置,talk.google.com,jabber.org)时,抛出的XMPPException(消息:SASL身份验证失败:未授权)不包含任何XMPPError或StreamError(两者均为空) 最奇怪的是,Spark Java XMPP客户端使用与我相同的Smack版本(v3.2.2)(我甚至将我的版本与Spark版本进行了交换)可以使用getXMPPError处理无效的登录凭据,
有人能在这里解释一下吗?我不知道这是否有帮助,但试试类似的方法
try {
XMPPConnection connection = new XMPPCOnnection....
connection.connect();
.
.
.
} catch (Throwable t) {
t.printStackTrace();
}
原因可能是您正在寻找错误的异常,通过捕获Throwable,您将寻找几乎所有的东西,因此此代码不会解决您的问题,但可能会让您走上正轨,或者至少为您提供一些提示。来自on Ignite Realtime:
getXMPPError()
返回与此异常关联的XMPPError,如果没有异常,则返回null
我不确定,但也许spark确实像您一样解析错误字符串