我正在尝试访问我自己的webdav接口,并从PEAR webdav客户端获得根目录中的文件列表。我正在尝试以下内容:
include("HTTP/WebDAV/Client.php");
$client = new HTTP_WebDAV_Client_Stream();
$user="admin";
$pass = "q1w2e3r4";
$dir = "webdavs://".$user.":".$pass."@127.0.0.1:10081/owncloud/remote.php/webdav/";
$stuff = $client->dir_opendir($dir, array());
var_dump($stuff);
var_dump($client->dirfiles);
代码打印false, false,当我试图调试它时,我在Socket.php中看到连接拒绝错误,当它试图调用函数
fsockopen("127.0.0.1", 10081, $err, $errstr);
更奇怪的是,我可以访问这个服务器,并列出从尸体的目录。我还可以通过替换我的$dir
变量来访问测试DAV服务器:
$dir = "webdavs://".$user.":".$pass."@127.0.0.1:10081/owncloud/remote.php/webdav/";
这是一个丑陋的hack,但是如果你添加类似的东西:
var_dump($err->getMessage());
到/usr/share/php/HTTP/Request.php的第739行,您应该能够看到最相关的错误消息。(如果这是Request.php被安装到的地方)
不幸的是,在底层的HTTP_Request包中似乎没有一种机制来将特定的错误消息返回给HTTP_WebDAV_Client_Stream代码。