Я реализую Java-клиент ActiveSync. Я уже могу связываться с сервером и выполнять последовательность протокола для синхронизации электронной почты, как определено в документация.
Однако, когда я пытаюсь отправить команду 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