Необходимо реализовать регистрацию в jabbere. Использую библиотеку Smack.
public void registration(String login, String password)
Registration r = new Registration();
PacketFilter filter = new AndFilter(new PacketIDFilter(r.getPacketID()));
PacketCollector col = connection.createPacketCollector(filter);
System.out.println(" Request: " + r.getChildElementXML());
connection.sendPacket(r);
IQ result = (IQ) col.nextResult();
if (result.getType() == IQ.Type.RESULT) {
System.out.println("OK response: " + result.getChildElementXML());
} else {
System.out.println("Error "+result.getType()+" response: " + result.getChildElementXML());
}
}
получаю "OK response: "
<query xmlns="jabber:iq:register">
<instructions>You need a client that supports x:data and CAPTCHA to register</instructions>
<x xmlns="jabber:x:data" type="form">
<instructions>Choose a username and password to register with this server</instructions>
<field var="FORM_TYPE" type="hidden">
<value>urn:xmpp:captcha</value>
</field>
<field label="User" var="username" type="text-single">
<required />
</field>
<field label="Password" var="password" type="text-private">
<required />
</field>
<field type="fixed">
<value>If you don't see the CAPTCHA image here, visit the web page.</value>
</field>
<field var="captchahidden" type="hidden">
<value>workaround-for-psi</value>
</field>
<field label="CAPTCHA web page" var="url" type="text-single"><value>http://jabber.kiev.ua:5000/captcha/679267850/image</value>
</field>
<field var="from" type="hidden">
<value>jabber.kiev.ua</value>
</field>
<field var="challenge" type="hidden">
<value>679267850</value>
</field>
<field var="sid" type="hidden">
<value>j6yGe-0</value>
</field>
<field label="Enter the text you see" var="ocr">
<required />
</field>
</x>
<data xmlns="urn:xmpp:bob" />
</query>
Судя по-всему, теперь нужно послать серверу ту же xml'ку только с заполненными полями вместо required тегов (поля с логином, паролем и с ответом на каптчу). Вопрос, как послать ответ?
Продвижение своими сайтами как стратегия роста и независимости