2010-06-29 51 views
0

是否有任何网站或某个人可以提供示例PROFIND请求。WebDAV的示例代码PROPFIND

我试着从MSDN的PROFIND代码示例,但得到400错误的请求。

无法理解为什么会发生这种情况。

以前张贴在Getting 400 Bad request from WebDav Server

问题任何建议将大大有益的。

编辑

@Julian,

有我的请求体更新为以下几点:

strBody = "<?xml version='1.0' encoding='utf-8'?>" 
       + "<propfind xmlns='DAV:'>" 
       + "<allprop/>" 
       + "</propfind>"; 

截至RFC 4918, Section 9.1

解释,但我仍然得到400错误请求错误。我错过了任何标题。请建议我设置以下标题信息:

System.Net.HttpWebRequest Request; 
Request.Credentials = MyCredentialCache; 
Request.Method = "PROPFIND"; 

bytes = Encoding.UTF8.GetBytes((string)strBody); 
Request.ContentType = "text/xml"; 

是否需要设置或指定其他内容。完整的代码在我的Previosu问题中。

感谢,

Subhen

+0

问同样的问题又是不是真的有帮助。 RFC 4918有例子;你尝试过吗? – 2010-06-29 06:02:38

+0

@ Julian,试用RFC 4918,9.1节,仍然收到400错误。更新了帖子。 谢谢 – Simsons 2010-06-29 09:49:16

+0

你有没有检查响应主体说什么? – 2010-06-29 12:42:31

回答

4

好,我是缺少深度头和这个原因,网络服务器返航不允许的方法错误。

MSDN明确指出 深度值为“infinity”的PROPFIND在MAPI客户端(如Microsoft Outlook)可访问的公用存储中不受支持。

而生成错误请求404错误是因为我没有使用代理。所以我做了什么,我评论了没有使用任何代理的行,并添加了深度标题。

// Request.Proxy = GlobalProxySelection.GetEmptyWebProxy(); 
Request.Headers.Add("Depth", "1"); 

完整的C#代码可以发现here