【问题标题】:Undocumented Exchange ActiveSync status while syncing同步时未记录的 Exchange ActiveSync 状态
【发布时间】:2011-10-24 15:36:04
【问题描述】:

我正在尝试构建一个简单的 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>

我在官方文档中找不到有关此状态码的任何文档。我该如何解决这个问题?

【问题讨论】:

    标签: python exchange-server activesync wbxml


    【解决方案1】:

    Sync 状态代码值 4 表示客户端协议错误。它记录在this MSDN page

    假设Inbox 的 ID 为 5(从 WBXML 转换为可读的 XML),正确的 Sync 命令应该如下所示:

    <?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 协议要求您首先使用 ProvisionFolderSync。你不能直接跳到Sync。基本协议序列描述here

    【讨论】:

      猜你喜欢
      • 2013-06-07
      • 2012-09-14
      • 1970-01-01
      • 2011-01-20
      • 2011-10-26
      • 1970-01-01
      • 2011-08-26
      • 2012-01-31
      • 1970-01-01
      相关资源
      最近更新 更多