zoukankan      html  css  js  c++  java
  • ASIHTTPRequest实现断点下载

    - (IBAction)URLFetchWithProgress:(id)sender
    
    {
    
    [startButton setTitle:@"Stop" forState:UIControlStateNormal];
    
    [startButton addTarget:self action:@selector(stopURLFetchWithProgress:)forControlEvents:UIControlEventTouchUpInside];
    
    NSString*tempFile = [[[[NSBundle mainBundle] bundlePath]stringByDeletingLastPathComponent]stringByAppendingPathComponent:@"MemexTrails_1.0b1.zip.download"];
    
    if ([[NSFileManager defaultManager] fileExistsAtPath:tempFile]) {
    
    [[NSFileManager defaultManager] removeItemAtPath:tempFile error:nil];
    
    }
    
    [self resumeURLFetchWithProgress:self];
    
    }
    
    - (IBAction)stopURLFetchWithProgress:(id)sender
    
    {
    
    networkQueue = [[ASINetworkQueue alloc] init];
    
    timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:selfselector:@selector(updateBandwidthUsageIndicator) userInfo:nil repeats:YES];
    
    timer = nil;
    
    [startButton setTitle:@"Stop" forState:UIControlStateNormal];
    
    [startButton addTarget:self action:@selector(URLFetchWithProgress:)forControlEvents:UIControlEventTouchUpInside];
    
    [networkQueue cancelAllOperations];
    
    [resumeButton setEnabled:YES];
    
    }
    
    - (IBAction)resumeURLFetchWithProgress:(id)sender 
    
    {
    
    [resumeButton setEnabled:NO];
    
    [startButton setTitle:@"Start" forState:UIControlStateNormal];
    
     [startButton addTarget:self action:@selector(stopURLFetchWithProgress:)forControlEvents:UIControlEventTouchUpInside];
    
    [networkQueue cancelAllOperations];
    
    [networkQueue setShowAccurateProgress:YES];
    
    [networkQueue setDownloadProgressDelegate:progressIndicator];
    
    [networkQueue setDelegate:self];
    
    [networkQueue setRequestDidFinishSelector:@selector(URLFetchWithProgressComplete:)];
    
    ASIHTTPRequest*request=[[[ASIHTTPRequest alloc] initWithURL:[NSURLURLWithString:@"http://9991.net/blog/mp3/2.mp3"]] autorelease];
    
    [request setDownloadDestinationPath:[[[[NSBundle mainBundle] bundlePath]
    
    stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"MemexTrails_1.0b1.mp3"]];
    
    [request setTemporaryFileDownloadPath:[[[[NSBundle mainBundle] bundlePath]stringByDeletingLastPathComponent]stringByAppendingPathComponent:@"MemexTrails_1.0b1.zip.down"]];
    
    [request setAllowResumeForFileDownloads:YES];
    
    [networkQueue addOperation:request];
    
    [networkQueue go];
    
    }
    
    - (void)URLFetchWithProgressComplete:(ASIHTTPRequest *)request
    
    {
    
    if ([request error]) {
    
    fileLocation.text=[NSString stringWithFormat:@"An error occurred:%@",[[[requesterror] userInfo] objectForKey:@"Title"]];
    
    } else {
    
    fileLocation.text=[NSString stringWithFormat:@"File downloaded to %@",[requestdownloadDestinationPath]];
    
    }
    
    [startButton setTitle:@"Start" forState:UIControlStateNormal];
    
    [startButton addTarget:self action:@selector(URLFetchWithProgress:)forControlEvents:UIControlEventTouchUpInside];
    
    }
    
    - (IBAction)throttleBand(id)sender
    
    {
    
    if ([(UIButton *)sender state] ==YES) {
    
    [ASIHTTPRequest setMaxBandwidthPerSecond:ASIWWANBandwidthThrottleAmount];
    
    } else {
    
    [ASIHTTPRequest setMaxBandwidthPerSecond:];
    
    }
    
    }
  • 相关阅读:
    传说中的灵感
    错误: Sys.WebForms.PageRequestManagerServerErrorException: 只能在执行 Render() 的过程中调用 RegisterForEventValidation;
    只能在执行 Render() 的过程中调用 RegisterForEventValidation
    在aspx实现用户控件内Web控件的事件
    Asp.net网页上嵌入Media Player播放
    为临时表动态添加字段
    如何防止头文件被重复包含、嵌套包含
    Linux C SQLite3 编程
    Android开源项目源码下载(不断更新中)
    Android程序员必看之Android六大优势
  • 原文地址:https://www.cnblogs.com/jinlianglu/p/6511403.html
Copyright © 2011-2022 走看看