我正在实现一个 ActiveSync Java 客户端。我已经可以与服务器通信并执行协议序列以同步电子邮件,如文档中所定义。
但是,当我尝试发送Sync
命令时,似乎只能使用规范中可用命令的子集。当我在 Sync XML 消息中使用某些属性标签时,我会收到状态 4(“协议错误”)代码,即使根据规范这些应该是有效的。
当我只使用该GetChanges
属性时,我确实得到了正确的响应,但是我希望能够指定要返回的项目数量等。
我已包含要发送的 XML 片段:注释掉的行是已尝试但导致状态 4 的行。
<?xml version="1.0" ?>
<Sync xmlns="AirSync:">
<Collections>
<Collection>
<Class>Email</Class>
<SyncKey>{23423972324}</SyncKey>
<CollectionId>{23423sdfsdfsdfsf972324}</CollectionId>
<GetChanges/>
<!--<GetChanges>0</GetChanges>-->
<!--<WindowSize>512</WindowSize>-->
<!--<Options>-->
<!--<Class>Email</Class>-->
<!--<FilterType>3</FilterType>-->
<!--<MaxItems>10</MaxItems>-->
<!--</Options>-->
<!--<Commands>-->
<!-- <Fetch>-->
<!-- <ServerId>1:323</ServerId>-->
<!-- </Fetch>-->
<!--</Commands>-->
</Collection>
</Collections>
<!--<WindowSize>512</WindowSize>-->
</Sync>
是否有任何理由不支持这些属性?还是我在消息中遗漏了什么?
服务器的GetOptions
命令返回以下内容(截断):
Server: Microsoft-IIS/6.0,
X-Powered-By: ASP.NET,
Pragma: no-cache,
Public: OPTIONS, POST, Allow: OPTIONS, POST,
MS-Server-ActiveSync: 6.5.7653.19,
MS-ASProtocolVersions: 1.0,2.0,2.1,2.5,
MS-ASProtocolCommands:Sync,SendMail,SmartForward,SmartReply,GetAttachment,GetHierarchy,CreateCollection,DeleteCollection,MoveCollection,FolderSync,FolderCreate,FolderDelete,FolderUpdate,MoveItems,GetItemEstimate,MeetingResponse,ResolveRecipients,ValidateCert,Provision,Search,Notify,Ping