1

我目前通过托管运行正常的 Apache http 服务器解析托管在另一台 PC 上的 xml 文件。现在是否可以以 iPhone 删除该 pc 上的 xml 文件的方式对其进行编码?

我目前使用 NSMutableURLRequest 并将其设置为 NSData。

NSError * error; 
NSURLResponse * response;

NSMutableURLRequest *request =
    [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://ipaddress/UserBedData.xml"]
                            cachePolicy:NSURLRequestReloadIgnoringCacheData
                        timeoutInterval:5.0];
[request setHTTPMethod:@"GET"];         
NSData * responseData = [NSURLConnection sendSynchronousRequest:request
                                              returningResponse:&response
                                                          error:&error];
xmlParser = [[NSXMLParser alloc] initWithData:responseData];
4

2 回答 2

2

仅当服务器允许时。如果 Web 服务器正确设置了 WebDAV,则应该使用带有文件 URL 的动词 DELETE 来执行此操作(假设您提供了适当的凭据,因为让任何人都删除内容是个坏主意)。

删除几乎与提取相同。只需替换"GET""DELETE"忽略返回的内容。然而,还有身份验证的问题,这在阅读网站时通常无关紧要,但当您想删除网站上的某些内容时却很重要。恐怕在这方面我帮不了你。还要考虑@joost 的答案,这可能比允许客户端删除服务器上的内容更安全。

于 2010-07-23T02:22:48.267 回答
2

你对这台服务器有多少控制权?我假设您拥有完全访问权限。

考虑简单地定期清理 XML。在您知道不再需要文件后,每小时运行一次 cron 作业并删除文件。也许在后端创建一个列表来记录数据何时被访问,以便它可以安全地过期。

如果没有关于您正在做什么的更多细节,该方法很难缩小范围。为什么不能在 iPhone 上解析 XML,例如?是否可以动态生成 XML 提要,从而无需清理文件?XML 数据从何而来?这不一定是发布代码会有所帮助的情况。您应该详细说明所有部分是如何组合在一起的(iPhone 应用程序、远程服务器、数据)以及您要完成的工作。

它甚至是 XML 文件的集合吗?还是总是一样的?如果只是一个文件,为什么要删除它?只需在旧的重新生成时覆盖旧的(并在某处加盖时间戳,以便下载它的客户端知道它何时真正过时)。

于 2010-07-23T04:04:40.610 回答