Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从owncloud获取文件列表_C#_Asp.net_Webdav_Owncloud - Fatal编程技术网

C# 从owncloud获取文件列表

C# 从owncloud获取文件列表,c#,asp.net,webdav,owncloud,C#,Asp.net,Webdav,Owncloud,我想从我的ASP站点上的owncloud获取文件列表。我成功地使用了 curl-X PROPFIND-u用户:密码”http://yourserver.com/owncloud/remote.php/webdav/“来自linux,但我无法使用propfind类型的默认http请求获得相同的结果,以便在c#https://user:password@host/owncloud/remote.php/webdav。根据我的要求,我得到了400码。我还尝试了nuget的webdavclient,但收

我想从我的ASP站点上的owncloud获取文件列表。我成功地使用了
curl-X PROPFIND-u用户:密码”http://yourserver.com/owncloud/remote.php/webdav/“
来自linux,但我无法使用propfind类型的默认http请求获得相同的结果,以便在c#
https://user:password@host/owncloud/remote.php/webdav
。根据我的要求,我得到了400码。我还尝试了nuget的webdavclient,但收到了方法不允许的异常

        IClient c = new Client(new NetworkCredential { UserName = "user", Password = "password" });
        var client = new WebDAVClient.Client(new NetworkCredential());
        c.Server = "xxx.com/owncloud/remote.php/webdav/";
        var isfolderCreated = c.CreateDir("/", "lalala").Result;

有人能告诉我如何向owncloud发送http请求以获取文件列表吗?我尝试了客户端使用的webdav协议,但也许我应该尝试其他方法?

我发现了阻止我的问题。我只是在http请求中没有正确使用基本授权。因为我添加了正确的凭据,所以我可以发送http请求并获得响应。下面是我在c#中使用的代码:


如果你能分享你的遗嘱,那就太棒了。@mjwills,澄清了一点,但这就是我所拥有的,它不可能是你所拥有的。您显然已经编写了一些代码<代码>我还尝试了nuget的webdavclient,但收到了method not allowed异常。也这么说。给我们看看代码。
var request = (HttpWebRequest)WebRequest.Create("xxx.com/owncloud/remote.php/webdav/");

                request.Credentials = new NetworkCredential("user", "password");
                request.PreAuthenticate = true;
                request.Method = @"PROPFIND";
                request.Headers.Add(@"Translate", "F");

                var httpGetResponse = (HttpWebResponse)request.GetResponse();


                using (var responseStream = httpGetResponse.GetResponseStream())
                {
                    long responseLength = httpGetResponse.ContentLength;

                    using (var streamReader = new StreamReader(responseStream, Encoding.UTF8))
                    {
                        var files = XElement.Parse(streamReader.ReadToEnd());

                        streamReader.Close();
                    }

                    responseStream.Close();
                }