首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asmack/Openfire 401错误

Asmack/Openfire 401错误
EN

Stack Overflow用户
提问于 2011-10-21 19:21:58
回答 2查看 2K关注 0票数 1

我正在尝试使用asmack在Android上编写一个简单的XMPP应用程序,但我遇到了一个问题,即我无法登录到多个jabber服务器。例如,我无法登录到我的测试Openfire服务器,尽管代码可以很好地使用jabber.org帐户。

登录代码:

代码语言:javascript
复制
public void login() throws XMPPException
{
    if (connection != null && connection.isConnected())
    {
        try 
        {
            Random generator = new Random();
            int resource_int = generator.nextInt();
            connection.login(USERNAME, PASSWORD, 
                             "Smack_" + Integer.toString(resource_int));
        } 
        catch (XMPPException e) 
        {
            e.printStackTrace();
            connection.disconnect();
            setConnection(null);
            throw e;
        }
        Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.accept_all);
    }
}

正如我所说的,它可以与jabber.org一起工作,但是Openfire会返回not-authorized(401)错误。我怎么才能修复它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-21 19:58:34

我从来没有用过Openfire,但我肯定在某个地方有一个日志文件--你能把它贴出来吗?

IIRC在Android中,一些安全功能(不确定是SSL还是TLS)与Smack或Asmack不兼容,也许这就是问题所在。在这种情况下,有一种方法可以通过使用自己的套接字连接(而不是Smack包含的SSL函数)来解决-要验证这一点,您可以将(与XMPP相关的)代码移植到PC并使用标准Smack库。

另一点是,Android有不同的Smack端口。我个人使用Beem-project中的Asmack移植(因为最初的Asmack有一些问题--但我记不清是哪一个了……)

但still...without更多的信息,我只能猜测。

票数 0
EN

Stack Overflow用户

发布于 2011-10-24 22:50:53

是否确定您在OpenFire服务器上具有相同的帐户和密码?尝试使用与现有XMPP客户端相同的用户名和密码登录到您的服务器。将Android完全排除在方程式之外,并确保您可以先登录到这两个服务器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7848677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档