не могли бы вы выслать мне код для отправки файла с помощью Asmack + openfire.
Я пробовал, но я получаю ошибку, как error code="503" type="cancel
.
Пожалуйста, помогите мне.Как отправить файл в Android с помощью Asmack + Openfire?
ответ
При создании OutgoingFileTransfer
вам необходимо отправить идентификатор Jabber с полной квалификацией, который состоит из узла, домена и ресурса (user @ domain/resource), как я уже говорил в комментариях, на самом деле вы отправляете [email protected]
и не подходит.
<iq id="SU8c1-17" to="[email protected]" from="[email protected]/Smack" type="set">
<si xmlns="http://jabber.org/protocol/si" id="jsi_2427513438410796738" profile="http://jabber.org/protocol/si/profile/file-transfer">
<file xmlns="http://jabber.org/protocol/si/profile/file-transfer" name="user.json" size="379">
<desc>test_file</desc>
</file>
<feature xmlns="http://jabber.org/protocol/feature-neg">
<x xmlns="jabber:x:data" type="form">
<field var="stream-method" type="list-multi">
<option>
<value>http://jabber.org/protocol/bytestreams</value>
</option>
<option>
<value>http://jabber.org/protocol/ibb</value>
</option>
</field>
</x>
</feature>
</si>
</iq>
Итак, ваша SentTo переменная shoulbe
String sentTo = "[email protected]/resource";
OutgoingFileTransfer transfer = manager.createOutgoingFileTransfer(sentTo)
см. Здесь, это поможет вам.
http://harryjoy.me/2012/08/18/file-transfer-in-android-with-asmack-and-openfire/
Я попробовал это, все еще получая такую же ошибку. – addy
прокрутите вниз до раздела комментариев на этой странице и проверьте ответ. –
Я думаю, вы должны послать Jabber ID с узлом файла, источником и доменом. Он должен быть в методе sentTo.
я сделал все, как вы сказали, до сих пор ее не работает. – addy
Покажите нам свой код. – vzamanillo
Ок проверить это http://stackoverflow.com/questions/21721605/asmack-file-sending-error-503-type-cancel-with-openfire – addy