【问题标题】:Why should I prefer ASIHTTPRequest over NSURLConnection for downloading files from the web?为什么我更喜欢 ASIHTTPRequest 而不是 NSURLConnection 从网络下载文件?
【发布时间】:2011-05-26 18:15:17
【问题描述】:

我见过几次有人使用 ASIHTTPRequest 下载文件。现在我想知道为什么? NSURLConnection 的核心优势是什么?

【问题讨论】:

  • 这个问题一年后,应该注意现在你应该选择 AFNetworking 而不是 ASIHTTPRequest。

标签: iphone ios ipad nsurlconnection asihttprequest


【解决方案1】:

有几个原因。在我看来,这些是主要的:

  1. ASIHTTPRequest 允许为每个请求指定一个委托(相对于整个NSURLConnection 一个委托);这很有用,因为原则上每个请求都会在您获得等待的数据后进行不同的处理;

  2. ASIHTTPRequest 支持缓存机制,使您的应用在离线时非常容易工作(并显示缓存的数据); NSURLRequest 中没有这种机制;

  3. 如果你搜索stackoverflow,你会发现很多strange memory leak 的提示是NSURLConnection/NSURLRequest 引起的; ASIHTTRequest 没有这种情况;

  4. ASIHTTRequest 提供了更好的可达性实现,这是绝对必要的;苹果提供的是said to be buggy

希望这会有所帮助。

【讨论】:

  • +1 用于提及可达性实现和 NSURLConnection/NSURLeRquest 的泄漏问题
  • 听起来不错。很好。但是如果 Apple 修复了可达性检测错误——ASIHTTPRequest 会停止正常工作吗?
  • @Mikhalo Ivanokov:不,因为 ASI Reachability 只是一个源文件,不依赖于 Apple Reachability。
  • @sergio :- 我的应用程序在下载时适用于小型 pdf,但当 pdf 大小超过 2 MB 时它会崩溃。我用过 NSURLConnection。你能帮我吗...
  • @mAc:我怀疑您在接收委托中的数据时做错了什么。无论如何,我建议在 S.O. 上创建一个特定问题,提供相关代码,您会找到很多帮助...
【解决方案2】:

ASIHTTPRequest 更容易使用。您不必手动连接数据块,POST 请求易于构建,支持块,ASIHTTPRequestNSOperation 的子类,因此您可以轻松排队您的请求等。

【讨论】:

  • 我的应用程序在下载时适用于小型 pdf,但当 pdf 大小超过 2 MB 时它会崩溃。我用过 NSURLConnection。你能帮我吗...
  • stackoverflow.com/questions/8123294/… ------ 看看这个阙。
【解决方案3】:

ASIHTTPRequest 的强项是恕我直言:

  • 易于使用
  • 文件发布
  • 内置身份验证
  • 内置 zlib 压缩
  • 排队

【讨论】:

  • NSURLRequest 已内置 zlib 压缩
  • 我的应用程序在下载时适用于小型 pdf,但当 pdf 大小超过 2 MB 时它会崩溃。我用过 NSURLConnection。谁能帮帮我...
  • @mac 你真的不应该用隐藏的新问题作为评论劫持答案 -> 请在 SO 上发布一个新问题。
  • 对不起,我已经在这个问题的下一个答案中发布了这个问题。你可以直接去这里:stackoverflow.com/questions/8123294/... ------ 检查这个问题。跨度>
【解决方案4】:

恕我直言,这归结为程序员的易用性。它非常易于使用,并且有非常好的文档记录。您可以非常轻松地使用队列并通过委托管理其状态。

在文件范围之外,与内置的 NSURL 类相比,使用 ASI 处理响应委托必须更容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多