我正在使用Sharp.XMPP
库FCM
。我可以正常连接,它可以毫无问题地接收上游消息。但是,发送ack
回服务器会收到错误代码 400 的响应,其中包含以下详细信息
<JIDMalformed xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
<text>"Malformed JID 'XXXXXX:XXXXXXXXXXXXX-XXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXX_XXXXX_XXXXX-XXXXXXXXXXXXXXXXXXX': domain label contains illegal character ':'"</text>
而 Xs 替换了接收上游消息的设备注册令牌。我用来形成消息并发送的代码:
Sharp.Xmpp.Im.Message x = new Sharp.Xmpp.Im.Message(vFrom);
x.Data.SetAttribute("message_id", vMessageID);
x.Data.SetAttribute("message_type", "ack");
cl.SendMessage(x);
该字符串vFrom
包含 device_token。我无法替换:
它,因为它是设备令牌的重要组成部分,\:
也不会逃避它。XML
在格式中使用冒号的正确方法是什么?