ASIHTTPRequest-断点续传需要原网站支持!

转:http://zyc-to.blog.163.com/blog/static/17152400201110221114526/

从0.94版本开始,ASIHTTPRequest可以恢复中断的下载


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

- (IBAction)resumeInterruptedDownload:(id)sender

{

  NSURL *url = [NSURL URLWithString:

    @"http://www.dreamingwish.com/wp-content/uploads/2011/10/asihttprequest-auth.png"];

  ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

  NSString *downloadPath = @"/Users/ben/Desktop/asi.png";

  //当request完成时,整个文件会被移动到这里

  [request setDownloadDestinationPath:downloadPath];

  //这个文件已经被下载了一部分

  [requestsetTemporaryFileDownloadPath:@"/Users/ben/Desktop/asi.png.download"];

  [request setAllowResumeForFileDownloads:YES];

  [request startSynchronous];

  //整个文件将会在这里

  NSString *theContent = [NSString stringWithContentsOfFile:downloadPath];

}

这个特性只对下载数据到文件中有效,你必须为一下情况的request设置allowResumeForFileDownloads 为YES:

  • 任何你希望将来可以断点续传的下载(否则,ASIHTTPRequest会在取消或者释放内存时将临时文件删除)
  • 任何你要进行断点续传的下载

另外,你必须自己设置一个临时下载路径(setTemporaryFileDownloadPath),这个路径是未完成的数据的路径。新的数据将会被添加到这个文件,当下载完成时,这个文件将被移动到downloadDestinationPath 。

断点续传的工作原理是读取temporaryFileDownloadPath的文件的大小,并使用Range: bytes=x HTTP头来请求剩余的文件内容。

ASIHTTPRequest并不检测是否存在Accept-Ranges头(因为额外的HEAD头请求会消耗额外的资源),所以只有确定服务器支持断点续传下载时,再使用这个特性。

时间: 2024-12-25 20:54:02

ASIHTTPRequest-断点续传需要原网站支持!的相关文章

如何让你的网站支持https

如何让你的网站支持https 当今世界的主流网站基本都是使用https对外界提供服务,甚至有某些公司建议完全使用https, 那么https是什么呢?请参考如下的图解,https是在我们通常说的tcp/ip协议中的传输层和应用层之间加入的一层,在这层的客户端浏览器和服务器端进行了加密,如图可以看出,加密的作用只能体现在应用层以下,也就是说tcp层看到的是加密数据,应用层看到的还是明文,也就是说https对于应用层来说是透明的,通常我们的http request, request header,k

让你的网站支持Retina屏幕

这个话题跟我刚刚换了支持 Retina 的笔记本有关.其实早有意识到,只是没 Retina 之前,认为这个工作是别人的事,毕竟现在支持“视网膜屏”的网站还是少数,但作为从业者,应该可以预见,未来3-5年,Retina 将会越来越普及,因为人们浏览网页的媒介正在发生巨大的变化,更多移动终端的介入,无疑会推动这一进程的发展.所以,早做准备,从现在开始,让你的网站支持 Retina! 普通网站/网页 方法有很多,但我发现最有效,也最方便的做法,就是利用 Retinajs ,原理也超简单,页面内调用 r

ASP.NET 网站支持多语言

ASP.NET网站支持多语言 (本地资源文件和全局资源文件的调用及需注意的地方总结)   一.   本地资源文件(App_LocalResources): ①.     本地资源的生成及调用 1.本地资源的VS自动生成方法: 将页面调整到[设计]视图,然后在VS2008菜单栏中 [工具]=>[生成本地资源]即可生成该页面的资源文件,在App_LocalResources文件夹中可查看.eg:Default2.aspx.resx 2.本地资源的手动生成方法: 选中网站=>添加新项=>然后选

IOS成长之路-ASIHTTPRequest 断点续传

1.导入ASIHTTPRequest第三方类库 下载地址:ASIHttpRequest类库         完整代码下载:下载 2.在 .h 文件中 [cpp] view plaincopy #import <UIKit/UIKit.h> #import "ASIHTTPRequest.h" #import "ASINetworkQueue.h" @interface DownLoadViewController : UIViewController&l

7.让网站支持http和https的访问方式

平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html#iis 怎么让网站在本地支持SSL?http://www.cnblogs.com/dunitian/p/5248957.html 添加网站的时候不要只选择https(绑定里面添加https,这样就可以访问http和https了) http地址 https地址 如果证书有问题可以去https://buy.wosign.com/free/ 在线申请 证书在线申请

[百度空间] [原]CImageList支持32位透明位图

32位的位图主要是包含Alpha值(0-255)可以有半透效果的.之前用FreeImage加载 的DIB, CImageList直接绘制会有黑色背景.即便用了ILC_MASK,也创建了mask map, 这种是旧式的图标/光标透明效果, 遮罩透明, 没有alpha通道和渐变,效果仍然很差.所以以前的toolbar/menu/tab control 都是ownerdraw, 先ExtractIcon,用DrawStat (DST_ICON)来绘制图标,这样绘的制是支持32位图标的.但是最近给too

让asp.net网站支持多语言,使用资源文件

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1

使你的网站支持markdown

获取showdown.js,这是改变样式所需的js 这是他们的github ,https://github.com/showdownjs/showdown 但是我们使用引入的bootcdn showdown.min.js吧. http://www.bootcdn.cn/showdown/ 进行网站的设置 html中引入 <script src="https://cdn.bootcss.com/showdown/1.8.6/showdown.js"></script&g

服务器 IIS 发布网站 支持下载 apk 和 ipa

方法/步骤 1 打开IIS服务管理器,找到服务器,右键-属性,打开IIS服务属性: 2 单击MIME类型下的"MIME类型"按钮,打开MIME类型设置窗口: 3 单击"新建",建立新的MIME类型: 扩展名是:.apk MIMI类型是:application/vnd.android.package-archive 扩展名是:.ipa MIMI类型是:application/iphone 4 单击"确定"保存设置.重启IIS,使设置生效. 链接:h