我正在iOS应用程序上实现AES协议。我正在实现文件夹同步命令,我得到200响应代码与341长度的数据。当我试图转换NSString中的数据时,它显示无意义的数据。到目前为止,我假设我必须得到我可以解析的WBXML数据。以下是我的帖子请求。
POST : Microsoft-Server-ActiveSync?Cmd=FolderSync&User=username&DeviceId=121213123&DeviceType=iOS
[request setValue:[NSString stringWithFormat:@"Basic %@",base64String] forHTTPHeaderField:@"Authorization"];
[request setValue:@"iPhone" forHTTPHeaderField:@"DeviceType"];
[request setValue:@"application/vnd.ms-sync.wbxml" forHTTPHeaderField:@"Content-Type"];
[request setValue:msgLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"14.0" forHTTPHeaderField:@"MS-ASProtocolVersion"];
[request setValue:@"*/*" forHTTPHeaderField:@"Accept"];
[request setValue:@"en-us" forHTTPHeaderField:@"Accept-Language"];
[request setValue:nil forHTTPHeaderField:@"X-MS-PolicyKey"];
这是我的文件夹同步命令。
<?xml version="1.0" encoding="utf-8"?>
<FolderSync xmlns="FolderHierarchy:">
<SyncKey> 0 </SyncKey>
</FolderSync>
这是响应十六进制数据。
&lt; 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&gt;
答案 0 :(得分:0)
我正在查看此回复及其二进制数据(不是XML格式),看起来它的某些结构化格式包含的内容似乎是电子邮件文件夹的名称:< / p>
如果这真的是您收到的回复,那么问题是这对您是否有意义(我使用了大量的文件格式,这看起来并不熟悉我)。根据您对WBXML作为ActiveSync交换格式的描述,我想这看起来似乎有道理。我根本不熟悉解析它。
答案 1 :(得分:0)
最后我使用https://github.com/jasenhuang/ASWBXml-c中的库来解决我的问题。 :)