iphone - 如何使用 Objective C 为 iOS 设备编写我自己的下载管理器

标签 iphone ios asihttprequest download-manager

我正在使用 objective-c 为 iPhone 编写下载管理器。我正在使用 ASIHTTP framework它工作得很好。但我的问题是我无法从 filesonic、rapidshare、hotfile 等文件共享站点下载。

我想知道如何从这些站点获取下载(实际下载)URL,或者至少这些站点如何隐藏此信息(以及隐藏位置),以便我能以某种方式获取...

是否有任何开源库或框架可以帮助我解决这个问题? firefox 或其他桌面浏览器如何获得此链接?

任何帮助将不胜感激!

更新 1:我不想绕过他们的广告和收入流。几乎所有的文件共享公司也提供低带宽免费下载,我只想使用该服务。现在有许多适用于 iPhone 的下载管理器,例如“Downloads Lite”。我只想构建一个类似的功能。

最佳答案

让我们从问题的结尾开始:

How firefox or other desktop browser get this link?

据我所知,下载管理器会拦截要在浏览器中启动的下载并自行管理。因此,链接和所有其他要求(cookie 等),以便实际进行下载,来自浏览器。

我认为您可以采用相同的方法:

  1. 使用 UIWebView 浏览到您想要下载的内容;

  2. 通过定义 – webView:shouldStartLoadWithRequest:navigationType: 拦截页面或下载的任何更改在您的 WebView 委托(delegate)中;

  3. 如果是下载某些支持的内容,从 webView:shouldStartLoadWithRequest:navigationType 返回 NO(以便 UIWebView 不执行任何操作),并将地址传递给您的自定义下载管理器以进行实际下载。

根据我的经验,这也会维护 cookie(即 UIWebViewASIHTTP 将共享它们),但是 YMAMV。

关于iphone - 如何使用 Objective C 为 iOS 设备编写我自己的下载管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8254833/

相关文章:

iphone - 从 facebook API 获取 birthday=Null

ios - 在多个 UITextField 的数字键盘上显示完成按钮

iphone - 为什么开始搜索时我的搜索 TableView 没有出现?

ios - Swift Stepper Action 更改同一单元格内的 UITextField 和 UILabel

iphone - 如何更改 Corona SDK for Retina Graphics 中的 tableView 库

iphone - 在后台围绕屏幕 float 一个 UIView

ios - “stringByAppendingPathComponent”不可用

ios - block 保留他们刚刚传递给的类?

ios - 使用 ASIHTTPRequest 跟踪进度

iphone - 使用 AsiHTTPRequest 的方法的返回值