Недокументированное состояние Exchange ActiveSync при синхронизации - PullRequest
1 голос
/ 11 августа 2011

Я пытаюсь создать простой клиент Exchange ActiveSync.

Я использую простой скрипт Python, который отправляет начальную команду синхронизации электронной почты при подключении к Exchange 2010 SP1.

В теле запроса я отправляю следующий XML, закодированный как WBXML (используя pywbxml):

<?xml version="1.0"?>
<!DOCTYPE AirSync PUBLIC "-//AIRSYNC//DTD AirSync//EN" "http://www.microsoft.com/">
<Sync>
  <Collections>
    <Collection>
      <Class>Email</Class>
      <SyncKey>0</SyncKey>
      <CollectionId>5</CollectionId>
    </Collection>
  </Collections>
</Sync>

Сервер отвечает 200 OK, но возвращает Status code: 4

<?xml version="1.0"?>
<!DOCTYPE AirSync PUBLIC "-//AIRSYNC//DTD AirSync//EN" "http://www.microsoft.com/">
<Sync>
  <Status>4</Status>
</Sync>

Я не смог найти никакой документации по этому коду статуса в официальных документах.Как я могу это выяснить?

1 Ответ

0 голосов
/ 15 августа 2011

Значение кода состояния Sync 4 представляет ошибку протокола клиента.Это задокументировано на этой странице MSDN .

Правильная команда Sync будет выглядеть примерно так, если предположить, что Inbox имеет идентификатор 5 (преобразованный из WBXML в читаемыйXML):

<?xml version='1.0' ?>
<Sync>
  <Collections>
    <Collection>
      <SyncKey>0</SyncKey>
      <CollectionId>5</CollectionId>
      <Options>
        <FilterType>5</FilterType>
        <BodyPreference>
          <Type>1</Type>
          <TruncationSize>32768</TruncationSize>
        </BodyPreference>
      </Options>
    </Collection>
  </Collections>
</Sync>

Протокол EAS требует, чтобы вы сначала Provision и FolderSync, однако.Вы не можете просто прыгнуть прямо к Sync.Базовая последовательность протокола описана здесь .

...