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:];
    
    }
    
    }
  • 相关阅读:
    jetcache 二级缓存使用
    hutool-crypto 依赖 Aes加密,解密
    springboot下的logback-spring配置文件以及使用方式
    docker 实现多个端口映射
    zookeeper部署启动异常,8080端口被占用。
    docker tomcat 文件传递
    关于注解AOP,基于类和方法的实现
    idea 创建file找不到java文件时....
    idea 将项目代码提交到github中
    java第八天---多态、抽象、接口
  • 原文地址:https://www.cnblogs.com/jinlianglu/p/6511403.html
Copyright © 2011-2022 走看看