C# 从owncloud获取文件列表
我想从我的ASP站点上的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,但收
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();
}