我尝试从 iCloud 帐户获取所有联系人...
首先我运行:
<?xml version="1.0" encoding="UTF-8"?>
<d:propfind xmlns:d="DAV:">
<d:prop>
<d:current-user-principal/>
</d:prop>
</d:propfind>
然后我得到/xxxxxxxxxxx/carddavhome/并运行:
<?xml version="1.0" encoding="UTF-8"?>
<d:propfind xmlns:d="DAV:" xmlns:card="urn:ietf:params:xml:ns:carddav">
<d:prop>
<card:addressbook-home-set/>
</d:prop>
</d:propfind>
这给了我 URL https://pXX-contacts.icloud.com:443/xxxxxxxxxxx/carddavhome/然后我向这个 URL 发送以下请求:
<?xml version="1.0" encoding="UTF-8"?>
<d:propfind xmlns:d="DAV:" xmlns:card="urn:ietf:params:xml:ns:carddav">
<d:prop>
<d:displayname/>
<d:resourcetype/>
</d:prop>
</d:propfind>
我得到:
<?xml version="1.0" encoding="UTF-8"?>
<multistatus xmlns="DAV:">
<response>
<href>/xxxxxxxxxxx/carddavhome/</href>
<propstat>
<prop>
<resourcetype>
<collection/>
</resourcetype>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
<propstat>
<prop>
<displayname/>
</prop>
<status>HTTP/1.1 404 Not Found</status>
</propstat>
</response>
</multistatus>
如果我尝试将其运行到 URL https://pXX-contacts.icloud.com:443/xxxxxxxxxxx/carddavhome/contacts
<?xml version="1.0" encoding="UTF-8"?>
<card:addressbook-query xmlns:d="DAV:" xmlns:card="urn:ietf:params:xml:ns:carddav">
<d:prop>
<d:getetag/>
<card:address-data/>
</d:prop>
</card:addressbook-query>
我得到:遇到格式不正确的 XML,意外的根节点
我的错误是什么?前 2 个查询有效并给了我预期的结果,第 3 个应该给我地址簿和组的列表,第 4 个应该给我所有的 VCard。