Я реализую клиент ActiveSync Java. Я уже могу связаться с сервером и выполнить последовательность протоколов для синхронизации писем, как определено в documentation.ActiveSync Sync сообщение не поддерживает все свойства
Однако, когда я пытаюсь отправить команду Sync
, кажется, что я могу использовать только подмножество доступных команд в спецификации. Когда я использую определенные теги свойств в XML-сообщении Sync, я получаю код состояния 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
ОБНОВЛЕНИЕ: я смог использовать прокси для передачи сообщений, отправляемых с клиента электронной почты Android Emulator, и кажется, что он может успешно использовать свойства, которые не работают в моем Java-клиенте. Я попытался точно воспроизвести HTTP-сообщения, отправленные с Android в моем Java-клиенте, но я всегда получаю сообщение статуса 4 от Exchange. Любой, кто может помочь? –