我最近尝试从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多集报告,这是大多数客户端所做的。