0

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
4

1 に答える 1

0

私が使用していた WBXML エンコード/デコーダーが正しく機能していなかったことが判明しました。これは、2 つの異なる WBXML エンコーダーによって生成されたバイト コードを比較することでわかり、違いがわかりました。私が使用していたエンコーダーは、空の要素を適切に処理しませんでした。修正したところ、サーバーは期待どおりに動作するようになりました。

于 2012-06-18T12:11:52.697 に答える