请求CardDav服务器的限制范围内的匹配数



我最近尝试从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>

有办法查询下一页吗?

提前谢谢。

CardDAV本身并不提供分页机制。WebDAV同步(https://www.rfc-editor.org/rfc/rfc6578)另一方面确实提供了分页,尽管并非所有服务器实现都支持分页。

现在,如果理解了您的查询,那么您几乎是在询问集合中除了组之外的所有联系人。除非你有大量的组,否则你可能想在客户端过滤它们,在这种情况下,你可以使用常规的PROPFIND(或WebDAV同步报告),然后使用一系列的CarDAV多集报告,这是大多数客户端所做的。

最新更新