Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 注册新用户Openfire服务器返回错误请求节_Android_Xmpp_Openfire_Smack_Asmack - Fatal编程技术网

Android 注册新用户Openfire服务器返回错误请求节

Android 注册新用户Openfire服务器返回错误请求节,android,xmpp,openfire,smack,asmack,Android,Xmpp,Openfire,Smack,Asmack,我正在尝试使用以下代码使用aSmack 4注册新用户: ConnectionConfiguration config = new ConnectionConfiguration(Constant.XMPP_HOST, Constant.XMPP_PORT); SASLAuthentication.supportSASLMechanism("PLAIN", 0); config.setSecurityMode(ConnectionConfiguration.SecurityMode.disable

我正在尝试使用以下代码使用aSmack 4注册新用户:

ConnectionConfiguration config = new ConnectionConfiguration(Constant.XMPP_HOST, Constant.XMPP_PORT);
SASLAuthentication.supportSASLMechanism("PLAIN", 0);
config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.accept_all);
conn2 = new XMPPTCPConnection(config);

String user ="bear";
String pass = "123";
String email = "bear@bear.com";
HashMap<String,String> attr = new HashMap<String, String>();
attr.put("username",user);
attr.put("password",pass);
attr.put("email", email);
if(conn2!=null) {

Registration reg = new Registration();
reg.setType(IQ.Type.SET);
reg.setTo(conn2.getServiceName());
reg.setAttributes(attr);
PacketFilter filter = new AndFilter(new PacketIDFilter(
        reg.getPacketID()), new PacketTypeFilter(IQ.class));
PacketCollector collector = conn2 .createPacketCollector(filter);
try {
    conn2.sendPacket(reg);
} catch (SmackException.NotConnectedException e) {
    e.printStackTrace();
}
IQ result = (IQ) collector.nextResult(SmackConfiguration
        .getDefaultPacketReplyTimeout());
System.out.println(result);
collector.cancel(); 
ConnectionConfiguration config=新的连接配置(Constant.XMPP\u主机,Constant.XMPP\u端口);
SASLAuthentication.支持SaslMechanism(“平原”,0);
config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
花名册.setDefaultSubscriptionMode(花名册.SubscriptionMode.accept_all);
conn2=新的XMPPTCP连接(配置);
字符串user=“bear”;
字符串pass=“123”;
字符串电子邮件=”bear@bear.com";
HashMap attr=新HashMap();
属性输入(“用户名”,用户);
属性put(“密码”,pass);
attr.put(“电子邮件”,email);
如果(conn2!=null){
注册注册=新注册();
注册表设置类型(IQ.Type.SET);
reg.setTo(conn2.getServiceName());
注册设置属性(属性);
PacketFilter filter=新和过滤器(新PACKETDIFILTER(
reg.getPacketID()),新的PacketTypeFilter(IQ.class));
PacketCollector=conn2.createPacketCollector(过滤器);
试一试{
conn2.发送包(reg);
}捕捉(SmackException.NotConnectedException e){
e、 printStackTrace();
}
IQ结果=(IQ)收集器.nextResult(SmackConfiguration
.getDefaultPacketReplyTimeout());
系统输出打印项次(结果);
collector.cancel();
但是Openfire服务器返回这个包,我不知道它是什么意思

<iq id='XILKN-9' to='pc-pc/b529612d' from='192.168.21.107' type='error'>
      <query xmlns='jabber:iq:register'>
          <password>123</password>
          <email>bear@bear.com</email>
          <username>bear</username>
     </query>
     <error type="modify">
          <bad-request xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
    </error>
</iq>

123
bear@bear.com
熊

有什么问题吗?我正在使用OpenFire 3.9.3和aSmack 4.0.7。

我知道为时已晚,但希望它能帮助别人。
在连接配置中,确保
setServiceName
正确。即
config.setServiceName(服务名称)

伙计,你是如何解决这个问题的?我在这里遇到了同样的问题..我也有同样的问题..它在尝试使用其他用户到新用户的经过身份验证的连接创建时有效,但在尝试使用匿名连接时无效…:(