在 XMPP 中获得异常未授权(401),同时提交表单

Posted

技术标签:

【中文标题】在 XMPP 中获得异常未授权(401),同时提交表单【英文标题】:IN XMPP getting exception not-authorized(401), while submitting the form 【发布时间】:2013-06-07 10:17:27 【问题描述】:

我可以添加群组,但它显示“房间已锁定,无法进入,直到确认配置”。我进行了研究,但没有找到任何令人满意的答案。下面是它如何获取 XMPP 连接并提交表单的代码。并在发送表单时抛出“未授权异常”。

xmppConnection = connectionThread.getXMPPConnection();
    if (xmppConnection == null) 
        Application.getInstance().onError(R.string.NOT_CONNECTED);
        return;
    
    final MultiUserChat multiUserChat;
    try 

        multiUserChat = new MultiUserChat(xmppConnection, room);
    //  setConfig(multiUserChat);

     catch (IllegalStateException e) 
        Application.getInstance().onError(R.string.NOT_CONNECTED);
        return;
    

//提交表单的代码。

private void setConfig(MultiUserChat multiUserChat) 

    try 
        Form form = multiUserChat.getConfigurationForm();
        Form submitForm = form.createAnswerForm();
        for (Iterator<FormField> fields = submitForm.getFields(); fields
                .hasNext();) 
            FormField field = (FormField) fields.next();
            if (!FormField.TYPE_HIDDEN.equals(field.getType())
                    && field.getVariable() != null) 
                submitForm.setDefaultAnswer(field.getVariable());
            
        
        submitForm.setAnswer("muc#roomconfig_publicroom", true);
        submitForm.setAnswer("muc#roomconfig_persistentroom", true);
        multiUserChat.sendConfigurationForm(submitForm);
     catch (Exception e) 
        e.printStackTrace();
    


【问题讨论】:

问题已经解决了,我从错误的地方调用了 setConfig() 方法。加入群组后应该调用。 multiUserChat.join(昵称,密码); // 设置房间的默认配置 setDefaultConfig(multiUserChat); 您可以回答自己的问题并接受它。 :) 【参考方案1】:

为了回答这个问题,我只是修改了你的评论。

你要早点打电话给setConfig()。加入群组后调用。

【讨论】:

以上是关于在 XMPP 中获得异常未授权(401),同时提交表单的主要内容,如果未能解决你的问题,请参考以下文章

Laravel sanctum 获得 401 未授权

HTTP,FTP异常码大全转载

HTTP返回码异常是因为啥原因

ASP.NET Web API:返回 401/未授权响应的正确方法

Azure 通知中心 - 401 MissingToken:未找到授权标头

HTTP错误代码