我从Open Office Calc收到以下WebDAV请求。您可以在下面看到我的服务器响应。我想这不是正确的答案,因为在我的服务器发送响应后,使用相同的参数获得了提示PROPFIND请求。之后,出现HEAD和GET消息。有人可以纠正吗?并说明Calc在此PROPFIND序列中实际要求什么?
我想从我的C代码中为Open Office Calc传输一个简单的html表。
我很感激 彼得
请求
PROPFIND / HTTP1.1
Host: WXPPx86BE-2318:80
user:-Agent: OpenOffice/4.0.0
Accept-Encoding: gzip
Depth: 0
Content-Type: application/xml
Content-Lenght: 230
<?xml version="1.0" encoding="utf-8"?>
<propfind xmlns="DAV:"/>
<prop>
<resourcetype xmlnx="DAV:"/>
<IsReadOnly xmlnx="http://ucb.openoffice.org/dav/props/"/>
<getcontenttype xmlnx="DAV:"/>
<supportedlock xmlnx="DAV:"/>
</prop>
</propfind>
响应
HTTP/1.1 207 Multi-Status
Content-Type: text/xml
Content-Lenght: XXXX
<?xml version="1.0" encoding="UTF-8"?>
<D:multistatus xmlns:D="DAV:">
<D:response xmlns:lp1="DAV:" xmlns:lp2="http://192.168.0.49/">
<D:href>/</D:href>
<D:propstat> <D:prop> <D:resourcetype>
<D:collection/></D:resourcetype>
<IsReadOnly xmlns="http://ucb.openoffice.org/dav/props/">false</IsReadOnly>
<D:getcontenttype>text/html</D:getcontenttype>
<D:supportedlock>
<D:lockentry>
<D:lockscope><D:exclusive/></D:lockscope>
<D:locktype><D:write/></D:locktype>
</D:lockentry>
<D:lockentry>
<D:lockscope><D:shared/></D:lockscope>
<D:locktype><D:write/></D:locktype>
</D:lockentry>
</D:supportedlock>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
</D:multistatus>
答案 0 :(得分:0)
欢迎来到Dav的美好世界!
上面的XML对我来说是正确的。但是根据我的经验,只有几个一般性的建议。
使用Dav的新开发人员中的一个常见错误是仅存出响应,例如Lock ID。但是永远不要这样做,每个响应在语义上都必须正确,否则客户端内部的逻辑将失败并且将中止该过程。
不幸的是,通常很难或不可能从dav客户端访问日志,因此很难找出问题所在。唯一有效的方法(恕我直言)是确保您实施的所有操作都正确无误。
您可能会发现使用诸如SabreDav或Milton(我的(非免费)项目-http://milton.io)之类的Dav服务器库最简单