在 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),同时提交表单的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Web API:返回 401/未授权响应的正确方法