您能否使用Asmack + openfire向我发送要发送文件的代码
我试过了,但我收到了error code="503" type="cancel
这样的错误
求你帮帮我。
答案 0 :(得分:1)
您必须在创建OutgoingFileTransfer
时发送一个完全限定的jabber ID作为detination userID,它由一个节点,一个域和一个资源(user @ domain / resource)组成,如前所述评论,实际上您发送a2@aaa
并且不正确。
<iq id="SU8c1-17" to="a2@aaa" from="a1@aaa/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变量应该
String sentTo = "user@domain/resource";
OutgoingFileTransfer transfer = manager.createOutgoingFileTransfer(sentTo)
答案 1 :(得分:-1)
我认为您应该使用文件节点,源和域发送jabber id。它应该在sentTo方法中。