【问题标题】:Smack: Message triggering "not-well-formed" exceptionSmack:消息触发“格式不正确”异常
【发布时间】:2019-12-30 04:02:05
【问题描述】:

我正在尝试通过 Smack 发送具有以下格式的字符串作为消息:

<STX>1<US>fileID<US>fileName<US>fileSize<US>senderID<US>stringEncodedByteArray<ETX>

我正在生成这样的参数:

String stringEncodedByteArray = Base64.getEncoder().encodeToString(bytes);
String fileID = java.util.UUID.randomUUID().toString();
String STX = Character.toString((char) 2);
String ETX = Character.toString((char) 3);
String US = Character.toString((char) 31);
String fileName = "file1";
String fileSize = "1000";
String senderID = "user1";

现在,当我尝试发送此消息时,我收到以下错误:

org.jivesoftware.smack.AbstractXMPPConnection callConnectionClosedOnErrorListener 警告:连接 XMPPTCPConnection[hemodd2@192.168.123.242/88381984845654635827858] (0) 因错误而关闭 org.jivesoftware.smack.XMPPException$StreamErrorException: not-well-formed 你可以在http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions阅读更多关于这个流错误的含义 格式不正确(令牌无效)

消息格式似乎与 Smack 的内部工作原理发生冲突,因为我可以毫无问题地发送诸如“Hello World”之类的普通消息。我知道我需要重新格式化消息,但我不知道该怎么做。我已经阅读了错误描述中的链接页面,但仍然不明白确切的问题。任何帮助表示赞赏。

【问题讨论】:

    标签: xml xmpp well-formed


    【解决方案1】:

    这不是 Smack 告诉您消息格式不正确,而是 XMPP 服务器。这可能是由于使用了 XML 1.0 中不允许的 ASCII 控制字符造成的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-31
      • 2020-05-05
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      相关资源
      最近更新 更多