【问题标题】:PROPFIND Request In WTClientWTClient 中的 PROPFIND 请求
【发布时间】:2012-02-01 01:51:20
【问题描述】:

我想在我的应用程序中添加 WebDAV 和 iDisk 界面,但是我在服务器上存储的文件方面遇到了一些技术问题。问题“How do I use a WebDAV server || to get a list of files”的每个答案似乎都以“使用 PROPFIND 请求”这一短语结尾。我决定使用 WTClient 类,因为它们为我建立和终止到服务器的流并管理上传和下载,但这是 WTClient 失败的地方:它无法收集服务器上的文件列表(或者我似乎无法收集一份清单,不管你的船是什么)。它使用以下行放入 PROPFIND 请求:

WTHTTPConnection *connection = [[WTHTTPConnection alloc] initWithDestination:remoteURL
                                    protocol:@"PROPFIND"];

然后它将结果收集为NSDictionary。但是,WTClient 不是使用该字典来获取文件列表,而是使用它从字典中的 XML 收集错误代码信息(如果存在)。虽然有帮助,但它不是我想要的。如果有人对如何请求 WebDAV 服务器上的文件并将它们收集到 NSDictionaryNSArray 有最模糊的想法,将不胜感激。

【问题讨论】:

    标签: objective-c ios webdav file-sharing cfnetwork


    【解决方案1】:

    source of WTClient来看,你需要使用initWithLocalURLpreparePropertiesConnection和/或requestProperties来实现你想要的。

    OTOH 似乎来自源中的一些 cmets,尤其是。 PROPFIND 周围的功能(这确实是从 WebDAV 获取目录列表所必需的)尚未完全实现......因此这可能不适用于您的用例。

    更新

    This 是一个 WebDAV 客户端库,包含已在 iOS 上成功使用的源代码(几乎没有修改)。它包括PROPFIND 和其他特定于 WebDAV 的 http 动词的实现……对我来说,这似乎是一个不错的起点。

    【讨论】:

    • 那么 ASIHTTPRequest 是否已经完全实现了 PROPFIND?
    • @CodaFi ASIHTTPRequest 是一个很好的 HTTP 实现,但它对 WebDAV/PROPFIND 一无所知...也许您可以使用它来编写您自己的 WebDAV 客户端实现...
    • 也许吧,但我一直在谷歌上搜索,似乎有很多人使用 ASI 将文件上传和下载到 WebDAV 和 iDisk 服务器的成功案例,我想要更多的页面-esque 实现,如在列表中。
    • @CodaFi 上传 (=HTTP PUT) 和下载 (=HTTP GET) 是 ASI 等支持的基本 HTTP 动词。但是您的问题是关于 PROPFIND 的,它是一个特定于 WebDAV 的 HTTP 动词!请查看我关于一个不错的 WebDAV 客户端库的更新...
    • 哦!这是用 Cocoa 写的……好吧,我想我还有一个翻译之夜。
    猜你喜欢
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 1970-01-01
    • 2016-02-10
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多