提问者:小点点

如何从终端发送此特定的 curl WebDAV PROPFIND 命令?


在这个网站上,我发现了这个 curl 命令:

curl -i -X PROPFIND http://example.com/webdav/ --upload-file - -H "Depth: 1" <<end
<?xml version="1.0"?>
<a:propfind xmlns:a="DAV:">
<a:prop><a:resourcetype/></a:prop>
</a:propfind>
end

我改变了http://example.com/webdav/到http://localhost/uploads,其中localhost是一个wamp64服务器,uploads是一个WebDav目录。上面站点的许多curl命令都经过了类似的测试,当从本地计算机上的CMD提示符发出时,它们运行良好。但是,我无法使PROPFIND命令工作。直接粘贴到cmd提示符会导致错误的请求错误。然后我试着:

curl-i-X PROPFINDhttp://example.com/webdav/上传文件-H"深度:1"

在cmd提示符中,这导致服务器响应“HTTP 1.1 100继续”,后跟一个空行和闪烁的光标。我研究了100继续问题,因为它与curl有关,只找到了避免得到该响应的讨论和方法,但没有指示如何发送服务器期望的数据。

我假设“


共1个答案

匿名用户

你在窗口终端上,对吧?您尝试的命令适用于 Linux/UNIX。有区别。

在Win上,你可以安装Git,它也会安装bash终端,这和在linux上是一样的。

无论如何,您尝试的命令会发送一个PROPFIND请求,其主体包含XML以及您希望接收的财产列表。该列表只包含一个属性资源类型,它是一种类似text/plain的内容类型。当然,您希望获得名称和大小等所有字段。

您可以简单地省略主体,然后它将返回所有默认属性:

curl-v-i-X PROPFINDexample.com/webdav-H"深度:1"

深度:1标题表示仅列出文件夹,而不列出其子文件夹。