【问题标题】:Getting WebDAV content via Delphi and Indy 10 TIdHTTP通过 Delphi 和 Indy 10 TIdHTTP 获取 WebDAV 内容
【发布时间】:2012-01-23 03:04:41
【问题描述】:

查看 Delphi 新闻组,似乎从 WebDAV 服务器获取内容的最佳方法是使用内置的 TIdHTTP.Get。这样做时,结果是 HTML,我只想确保这是检索有关目录和文件的数据的最佳方式。如果是这样,那么我会将其解析出来,但我只是想确保没有一种更简洁的方法可以只为我提供文件/文件夹信息......不,到目前为止我不希望为此使用任何其他组件。

【问题讨论】:

  • 您的标题提到了TIdWebDAV,但您的问题却询问了TIdHTTP。你真的看过使用TIdWebDAV 了吗? WebDav 协议使用 XML,而不是 HTML。您必须自己解析 XML,但是您可以使用 XPath 来简化解析以提取您需要的信息。
  • 我不知道 TidHTTP 中内置的任何其他选项会将 webdav 响应解析为一些集合和/或类似列表,但可能是错误的。
  • Indy 中没有 WebDav XML 解析器。 TIdWebDAV 是一个 TIdHTTP 包装器,可简化发送 WebDav 命令,但您必须自己解析输出。
  • 雷米 - 是的,这就是我的意思。我实际上指的是您的新闻组帖子,说要检索数据,您只需使用 TIdHTTP.Get ,因为这就是 TIdWebDAV 的起源。但是,不幸的是,我正在访问的 WebDAV 服务器肯定返回 HTML(“ Directory Listing for/”)而不是 XML。这就是为什么我要仔细检查...
  • 在看了这个之后,让我澄清一下 - 我想如果我在 FILE 上使用 Get,那么我可能只得到内容,这很好。我真正需要知道的是,我如何获得收藏?当我“获取”一个“文件夹”时,我得到了它的 HTML 表示。我想要一个集合中项目的 XML 列表,但我不确定如何获得它的最佳方法。

标签: delphi http webdav indy indy10


【解决方案1】:

回答我自己的问题:我想我想通了 - 我做了一个带有 allprop 和深度为 1 的 PropFile。这似乎给了我当前“目录”中的所有内容,我可以深入了解它。除非有更好的方法(或者如果我没有正确使用 PropFind),我会认为这是关闭的。有帮助的参考资料:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 2016-03-07
    相关资源
    最近更新 更多