Ios 如何在不下载的情况下测试外部URL上的文件是否存在?

Ios 如何在不下载的情况下测试外部URL上的文件是否存在?,ios,Ios,我想测试URL是否存在,而不加载任何实际数据 我正在考虑启动NSURLConnection,然后使用这两种委托方法检查状态: - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { // Connection failed ... presumably this is a server issue, and I don't know if the URL exists or

我想测试URL是否存在,而不加载任何实际数据

我正在考虑启动NSURLConnection,然后使用这两种委托方法检查状态:

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
    // Connection failed ... presumably this is a server issue, and I don't know if the URL exists or not.
}

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    int status = [((NSHTTPURLResponse *)response) statusCode];
    [connection cancel];
    // Do something with the status
}
这是明智的做法吗?我正在测试的文件可能非常大,因此我希望确保没有下载实际的文件

谢谢, 罗恩

p、 我之所以考虑添加这个,是因为苹果强迫我的应用程序停止备份从互联网下载的文件。相反,我将文件存储在非备份空间中,并在备份数据库中跟踪文件的原始位置。由于该文件旨在成为用户库的永久部分,因此我希望定期测试文件是否不可访问,然后将其移动到备份空间(例如,它将在恢复到新设备后仍然有效)。我对苹果强迫我做出这一改变感到非常恼火,因为我可以想象客户会丢失重要数据


p、 另外,由于一些奇怪的原因,这些委托方法不再出现在NSURLConnectionLegate协议的文档中。我假设文档是乱七八糟的。

就我个人而言,我会发送一个原始请求或修改head以使用标准HTTP头

它的结果类型与GET相同,因此如果您可以检查结果头,看看它的403404或201是否正确


就我个人而言,我会发送一个原始请求或修改head以使用标准HTTP头

它的结果类型与GET相同,因此如果您可以检查结果头,看看它的403404或201是否正确


在iOS中执行此操作的方法是使用NSMutableURLRequest并调用setHTTPMethod:to@“HEAD”。谢谢你的建议。。。这听起来是一个更好的方法!在iOS中执行此操作的方法是使用NSMutableURLRequest并调用setHTTPMethod:to@“HEAD”。谢谢你的建议。。。这听起来是一个更好的方法!你能详细解释一下你的说法吗,“苹果强迫我的应用程序停止备份从互联网下载的文件。”我的应用程序让用户可以选择在iCloud中保存从服务器下载的文件。苹果会立即拒绝这个选项吗?他们拒绝的原因是什么?我忘了确切的措辞,但苹果引用了一些新的限制,规定只能备份用户创建的文件。它接着说,无法备份可重新创建的文件,必须具有“请勿备份”属性。我的问题是,我的应用程序下载的文件只有在我的应用程序无法控制的web上的文件未被删除时才可重新创建。我不确定发送到iCloud的文件是什么。。。我的应用程序只是将文件存储在我的沙箱中的一个区域,而不是图书馆/缓存。从我上次的评论继续——我对拒绝提出质疑,并接到了苹果开发部门的电话。他们告诉我,他们理解我的文件不可复制,但他们仍然决定拒绝我的应用程序。他们甚至建议我使用像Dropbox这样的第三方云解决方案来存储苹果不允许我备份的关键文件。我正在考虑如何向我的应用程序的用户传达这个信息:“苹果只允许这个应用程序备份你的一些关键文件。如果你想备份所有文件,请点击这个链接设置一个Dropbox帐户。”@Stephen:很抱歉这么说。为了回答你关于苹果是否会拒绝你的应用的问题,我认为苹果会这么做。我相信他们会运行你的应用程序,进行“同步”,然后检查有多少数据作为备份的一部分发送到iCloud。如果审核人认为金额不合理,该应用程序将被拒绝。你能否详细说明你的声明:“苹果强迫我的应用程序停止备份从互联网下载的文件。”我的应用程序让用户可以选择将从服务器下载的文件保存在iCloud中。苹果会立即拒绝这个选项吗?他们拒绝的原因是什么?我忘了确切的措辞,但苹果引用了一些新的限制,规定只能备份用户创建的文件。它接着说,无法备份可重新创建的文件,必须具有“请勿备份”属性。我的问题是,我的应用程序下载的文件只有在我的应用程序无法控制的web上的文件未被删除时才可重新创建。我不确定发送到iCloud的文件是什么。。。我的应用程序只是将文件存储在我的沙箱中的一个区域,而不是图书馆/缓存。从我上次的评论继续——我对拒绝提出质疑,并接到了苹果开发部门的电话。他们告诉我,他们理解我的文件不可复制,但他们仍然决定拒绝我的应用程序。他们甚至建议我使用像Dropbox这样的第三方云解决方案来存储苹果不允许我备份的关键文件。我正在考虑如何向我的应用程序的用户传达这个信息:“苹果只允许这个应用程序备份你的一些关键文件。如果你想备份所有文件,请点击这个链接设置一个Dropbox帐户。”@Stephen:很抱歉这么说。为了回答你关于苹果是否会拒绝你的应用的问题,我认为苹果会这么做。我相信他们会运行你的应用程序,进行“同步”,然后检查有多少数据作为备份的一部分发送到iCloud。如果审核人认为金额不合理,则该应用程序将被拒绝。