0

最近、iCloud CardDav サーバーから大量の VCard を読み取ろうとしました。しかし、私がリクエストする 5000 番目の vCard には制限があることに気付きました。

これが私のレポートリクエストです:

<?xml version="1.0" encoding="utf-8" ?>
   <C:addressbook-query xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav">
   <C:filter>
      <C:prop-filter name="X-ADDRESSBOOKSERVER-KIND" test="anyof">
         <C:is-not-defined />
         <C:text-match collation="i;unicode-casemap" match-type="equals" negate-condition="yes">group</C:text-match>
      </C:prop-filter>
   </C:filter>
</C:addressbook-query>

そして、これがサーバーの回答の終わりです。

<response>
   <href>/872816606/carddavhome/card/</href>
   <status>HTTP/1.1 507 OK</status>
   <error><number-of-matches-within-limits/></error>
</response>

次のページを照会する方法はありますか?

前もって感謝します。

4

1 に答える 1

2

CardDAV 自体は、ページング メカニズムを提供しません。一方、 WebDAV Sync ( https://www.rfc-editor.org/rfc/rfc6578 ) はページングを提供しますが、すべてのサーバー実装がページングをサポートしているわけではありません。

ここで、クエリを理解している場合は、グループを除く、コレクション内のすべての連絡先をほとんど要求しています。グループの数が非常に多い場合を除き、おそらくクライアント側でそれらをフィルタリングする必要があります。その場合、通常の PROPFIND (または WebDAV Sync REPORT) を使用し、続いて一連の CarDAV multiget REPORT を使用できます。これは、ほとんどのクライアントが行うものです。行う。

于 2014-09-23T06:55:10.723 に答える