Я пытаюсь получить все контакты из учетной записи 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 встречен, неожидан root узел
В чем моя ошибка? Первые два запроса работают и дают ожидаемые результаты, третий - список адресных книг и групп, а четвертый - все VCards.