【问题标题】:What's the difference between downloadtaskwithrequest and downloadtaskwithurldownloadtaskwithrequest 和 downloadtaskwithurl 有什么区别
【发布时间】:2014-07-08 15:17:13
【问题描述】:

我正在观看斯坦福 CS193p 讲座视频。从 Flickr 下载一些照片时,讲师同时使用了 downloadTaskWithRequest:downloadTaskWithURL:。我有点困惑。

我在文档中查找了前者,其中将 NSURLRequest 称为“提供 URL、缓存策略、请求类型、正文数据或正文流等的 NSURLRequest 对象”。

我不知道“正文数据”或“正文流”是什么意思。如果有人能在这方面提供一点帮助,那就太好了,但更重要的是下面的问题。

在我看来,根据我的经验,这两种方法都可以正常工作(这并不多)。 我很想知道两者之间有什么区别(如果有的话),以及在什么情况下我应该选择一个而不是另一个。

【问题讨论】:

  • 我没有完整的答案,但例如,我需要从服务器请求字节范围。我的请求是一个 NSMutableURLRequest,它允许我添加包含我需要下载的“范围”的标题。
  • 致菲利普米尔斯:谢谢你的榜样。这真的很有帮助。现在我更清楚什么时候应该使用哪个了。
  • 要直接回复某人的评论,请在其姓名前使用@符号。例如,要直接回复我,您的评论应以“@duci9y ...”开头。
  • @duci9y 非常感谢!人们在这里真的很有帮助!
  • 我们的荣幸。 :) 欢迎来到 StackOverflow。

标签: ios objective-c nsurlsession cs193p nsurlsessiondownloadtask


【解决方案1】:

如果您使用NSURLRequest 版本,您提到的所有细节都可以由您明确设置。如果您使用NSURL 版本,则将使用默认值。默认值将涵盖大多数情况,但并非所有情况 - 这实际上取决于您在做什么。

主体数据/主体流(其中流是数据源)是需要发送到服务器以使其理解和处理请求的一些信息。默认情况下不会发送任何数据。通常您会在 URL 中使用查询参数而不是正文数据,但同样,这取决于您在做什么以及需要利用的 API。

【讨论】:

  • 这真的很有启发性。当不需要设置请求的细节而不考虑未来更改的可能性时,使用 NSURL 版本是否更容易?
  • 我真的很抱歉我不能投票给你的答案。看来我是个鲜为人知的家伙,连投票权都没有。
  • 是的,如果您不需要请求版本提供的功能,只需使用 URL 版本即可。即使您还不能投票,您也可以随时接受答案(对您提出的问题):)
  • 对Wain:我明白了:)。由于我是新手,所以对这些功能仍然有些模糊。
  • 请求的特性都与你可以指定的关于如何处理http配置和网络连接的事情有关。在你需要做类似的事情之前,你不需要太担心。
猜你喜欢
  • 2010-10-02
  • 2011-12-12
  • 2010-09-16
  • 2012-03-14
  • 2012-02-06
  • 2011-02-25
  • 2011-11-22
  • 2015-03-26
  • 2013-08-19
相关资源
最近更新 更多