我正在开发EAS客户端,但我被困在FolderSync命令上。我正在获得十六进制数据作为我无法解析的响应。
我搜索了论坛,发现服务器有xml/wbxml响应,但我不知道如何解码响应。
下面是十六进制数据。
03016a00 0007564c 03310001 52033100 014e5703 31310001 4f480331 00014903 30000147 0343616C 656e6461 7200014a 03380001 014f4803 32000149 03300001 4703436F 6E746163 74730001 4A033900 01014f48 03330001 49033000 01470344 656c6574 65642049 74656d73 00014a03 34000101 4F480334 00014903 30000147 03447261 66747300 014a0333 0001014F 48033500 01490330 00014703 496E626F 7800014a 03320001 014f4803 36000149 03300001 47034a6f 75726e61 6c00014a 03313100 01014f48 03370001 49033000 0147034a 756e6b20 456d6169 6c00014a 03313200 01014f48 03380001 49033000 0147034e 6f746573 00014a03 31300001 014f4803 39000149 03300001 47034f75 74626f78 00014a03 36000101 4F480331 30000149 03300001 47035365 6e742049 74656d73 00014A03 35000101 4F480331 31000149 03300001 47035461 736b7300 014a0337 00010101 01
libwbxml2 可用于解析二进制 WBXML 数据。可在此处找到具有最新标记的代码:https://github.com/nemomobile-packages/libwbxml2.git
以下是将二进制数据转换为 XML 格式的方法:
WB_ULONG xmlLength = 0;
WB_UTINY *xml = NULL;
WBXMLGenXMLParams params = {WBXML_GEN_XML_INDENT, WBXML_LANG_AIRSYNC, 2, TRUE};
wbxml_conv_wbxml2xml_withlen(wbxmlBuffer, wbxmlBufferLength, &xml, &xmlLength, ¶ms);
printf("%s", xml);
我最终使用第三方 c++ 库来隐藏来自/到 wbxml 的数据。