【问题标题】:Sample code for WebDAV PROPFINDWebDAV PROPFIND 的示例代码
【发布时间】:2010-06-29 05:04:18
【问题描述】:

请有任何网站或有人可以向我提供一个示例 PROFIND 请求。

我尝试了 MSDN 的 PROFIND 代码示例,但收到 400 Bad request。

无法理解为什么会这样。

之前在Getting 400 Bad request from WebDav Server发帖提问

任何建议都会很有帮助。

编辑

@朱利安,

已将我的请求正文更新为以下内容:

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

正如RFC 4918, Section 9.1所解释的那样

但我仍然收到 400 Bad request 错误。 M 我错过了任何 Headers 。请建议我设置以下标题信息:

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

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

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

谢谢,

次子

【问题讨论】:

  • 再次问同样的问题并没有真正的帮助。 RFC 4918 有示例;你试过了吗?
  • @Julian,尝试使用 RFC 4918,第 9.1 节,但仍然收到 400 错误。更新了帖子。谢谢
  • 您是否检查了响应正文的内容?
  • 当我到达 Response 时出现异常,即: Response = (HttpWebResponse)Request.GetResponse();在代码中
  • 检查请求/响应body,例如fiddler2.com/fiddler2

标签: webdav


【解决方案1】:

好的,我错过了深度标头,因此网络服务器返回 Method Not allowed 错误。

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

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

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

【讨论】:

    猜你喜欢
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多