【发布时间】:2017-07-11 09:51:06
【问题描述】:
我正在尝试使用 smack 扩展库 4.2.0 传输文件,但无法成功传输文件。当我尝试传输文件时,这是我得到的错误
org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPP error reply received from 252615100006@server/Smack: XMPPError: service-unavailable - cancel
即使对等点 00006 在线,但我不知道为什么我会收到对等点的错误
这是我传输文件的代码
public void sendImageMessage(String sendTo, String imagePath) throws XmppStringprepException {
FileTransferManager manager = FileTransferManager.getInstanceFor(mConnection);
EntityBareJid jid = JidCreate.entityBareFrom(sendTo);
EntityFullJid entityFullJid = JidCreate.entityFullFrom(jid+"/Smack");
Domainpart domainpart = entityFullJid.getDomain();
// Log.d(TAG ," JID Domain "+entityFullJid.do)
OutgoingFileTransfer outgoingFileTransfer = manager.createOutgoingFileTransfer(entityFullJid);
File file = new File(imagePath);
try {
outgoingFileTransfer.sendFile(file, file.getName());
} catch (SmackException e) {
e.printStackTrace();
}
while (!outgoingFileTransfer.isDone()) {
if (outgoingFileTransfer.getStatus().equals(FileTransfer.Status.error)) {
System.out.println("ERROR!!! " + outgoingFileTransfer.getError());
} else if (outgoingFileTransfer.getStatus().equals(FileTransfer.Status.cancelled)
|| outgoingFileTransfer.getStatus().equals(FileTransfer.Status.refused)) {
System.out.println("Cancelled!!! " + outgoingFileTransfer.getError());
}
try {
Thread.sleep(1000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if (outgoingFileTransfer.getStatus().equals(FileTransfer.Status.refused) || outgoingFileTransfer.getStatus().equals(FileTransfer.Status.error)
|| outgoingFileTransfer.getStatus().equals(FileTransfer.Status.cancelled)) {
System.out.println("refused cancelled error" + outgoingFileTransfer.getError().toString());
} else {
System.out.println("Successfully_SEND");
}
非常感谢任何帮助和指导
编辑: 我用户 spark 客户端使用我的服务器传输文件,它成功传输了文件。所以问题不在于服务器,我认为它不在客户端的代码中。
【问题讨论】: