#webdav
#webdav
Вопрос:
В настоящее время я внедряю сервер WebDAV и полностью застрял в обработке метода PROPFIND. Есть ли какие-либо ресурсы с реальными примерами? Мне трудно следовать спецификации, которая имо очень расплывчата. Вот, например, запрос «Лакмус», который отправляет мой сервер:
<?xml version="1.0" encoding="UTF-8"?>
<a:propfind xmlns:a="DAV:" xmlns="DAV:">
<b:prop xmlns:b="DAV:">
<b:getcontentlength/>
<b:getlastmodified/>
<b:displayname/>
<b:resourcetype/>
<c:foo xmlns:c="http://example.com/neon/litmus/" xmlns="http://example.com/neon/litmus/"/>
<bar/>
</b:prop>
</a:propfind>
По-видимому, мой ответ на это не подходит, поскольку Лакмусовая бумажка гласит: «4. propfind_d0……….. СБОЙ (ответы не возвращаются) «:
<?xml version="1.0" encoding="UTF-8"?>
<DAV:multistatus
xmlns:DAV="DAV:">
<DAV:response>
<DAV:href>/test/litmus/</DAV:href>
<DAV:propstat>
<DAV:prop>
<DAV:getlastmodified>Fri, 30 Sep 2016 23:28:31 0000</DAV:getlastmodified>
<DAV:displayname>litmus</DAV:displayname>
<DAV:resourcetype>
<DAV:collection></DAV:collection>
</DAV:resourcetype>
</DAV:prop>
<DAV:status>HTTP/1.1 200 OK</DAV:status>
</DAV:propstat>
<DAV:propstat>
<DAV:prop>
<DAV:getcontentlength></DAV:getcontentlength>
<a:foo
xmlns:a="http://example.com/neon/litmus/">
</a:foo>
<a:bar></a:bar>
</DAV:prop>
<DAV:status>HTTP/1.1 404 Not Found</DAV:status>
</DAV:propstat>
</DAV:response>
</DAV:multistatus>
Какой был бы правильный ответ и как я могу это выяснить?
Комментарии:
1. Одна из проблем заключается в том, что вас попросили указать свойства «foo» в пространстве имен » example.com/neon/litmus » и «bar» в пустом пространстве имен, но вернули результаты «не найдено» для «foo» и «bar» в пространстве имен «DAV:».
2. Я исправил это — см. Редактирование — но проблема все еще сохраняется…
3. Приведенный выше ответ прямо сейчас не анализируется; элемент «<a:bar>» не имеет объявления пространства имен.