解决Smack 提示“ Connection is not authenticated”
不点
阅读:735
2021-03-31 22:22:15
评论:0
在获取VCard(电子卡)信息的时候,我百度了一下,大部分的写法:如下:
/**
* 获取用户的vcard信息
* @param connection
* @param user
* @return
* @throws XMPPException
*/
public static VCard getUserVCard(XMPPConnection connection, String user) throws XMPPException
{
VCard vcard = new VCard();
vcard.load(connection, user);
return vcard;
}
我也是一名简单的“拿来主义者”,但是在按照方法填充完相关参数后提示如下错误:
我们从输出控制台了解到的信息:"连接不可靠"。
个人认为:在连接XMPP服务器,不仅仅是需要连接到XMPP服务,而是需要制定连接XMPP服务器的用户,结合上述的思考,我追加了一下两行代码:
connection.connect();
connection.login(user, password);
我根据网上和实际结果,调整后的代码如下:
/**
* 获取用户VCard信息
*
* @param connection
* @param user
* @return
* @throws XMPPException
*/
public static VCard getUserVCard(XMPPConnection connection, String user,String password)
throws XMPPException {
connection.connect();
connection.login(user, password);
VCard vcard = new VCard();
vcard.load(connection, user+"@"+connection.getServiceName());
return vcard;
}
以上代码,是实际场合已经经过测试。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。