CalDAV allprop не работает должным образом

Я использую сервер CalDAV.

Когда я отправляю следующий запрос:

curl --request PROPFIND  --user admin:admin --header "depth:0" --header "Content-Type: text/xml"  --data "<D:propfind xmlns:D='DAV:'><D:prop><D:allprop/></D:prop></D:propfind>" http://example/calendars/users/admin/calendar/

Я получаю ответ следующим образом:

<?xml version='1.0' encoding='UTF-8'?>
<multistatus xmlns='DAV:'>
  <response>
    <href>/calendars/users/admin/calendar/</href>
    <propstat>
      <prop>
        <allprop/>
      </prop>
      <status>HTTP/1.1 404 Not Found</status>
    </propstat>
  </response>

Если я правильно понимаю, CalDAV поддерживает allprop, поскольку я просмотрел руководства и примеры.

Если я изменю allprop на displayname или acl, тогда это сработает.

allprop не поддерживается или какой новый эквивалент allprop?

Или мой запрос плохой?


person GJain    schedule 11.11.2014    source источник


Ответы (1)


Да, ваша просьба неверна.

Запрос, как у вас есть, запрашивает свойство allprop.

Что вы хотите сделать, это:

<D:propfind xmlns:D='DAV:'><D:allprop/></D:propfind>

См. раздел RFC 2518 8.1.2 Пример — использование allprop для извлечения всего Свойства

person Martin Prikryl    schedule 11.11.2014
comment
Это еще проще: PROPFIND с пустым телом аналогичен запросу ‹allprop/›. Content-Length:0 достаточно. (Клиент может не отправлять тело запроса. Пустое тело запроса PROPFIND ДОЛЖНО рассматриваться как запрос allprop.) - person hnh; 11.11.2014