zoukankan      html  css  js  c++  java
  • ios中asihttprequest 下载缓存

    asi中下载缓存第一种方法

    #import <UIKit/UIKit.h>
    #import "ASIHTTPRequest.h"
    #import "ASIDownloadCache.h"
    @interface ViewController : UIViewController<ASIHTTPRequestDelegate>
    - (IBAction)click:(id)sender;
    @property (retain, nonatomic) IBOutlet UIImageView *img1;
    
    @end
    
    
    #import "ViewController.h"
    
    @interface ViewController ()
    {
    
    
    }
    @property(nonatomic,retain)NSDate *startData;
    @property(nonatomic,retain)NSDate *endData;
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    - (IBAction)click:(id)sender {
        
    
        [self download];
        
        
    }
    
    
    -(void)download{
        self.startData=[NSDate date];
               NSLog(@"start-->%@",self.startData);
        __block ASIHTTPRequest *request=nil;
      NSString *url=@"http://d.hiphotos.baidu.com/album/w%3D2048/sign=349954701b4c510faec4e51a5461272d/d1a20cf431adcbefc5d4f4beadaf2edda2cc9fa2.jpg";
      request=[ASIHTTPRequest requestWithURL:[NSURL URLWithString:url]];
        request.delegate=self;
        //设置缓存时间
        request.secondsToCache=24*60*60*7;//一周
       
    
       
        
        NSString *cachePath=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
        cachePath =[cachePath stringByAppendingPathComponent:@"res"];
        //缓存类
       ASIDownloadCache *_cache=[ASIDownloadCache sharedCache];
    
        [request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
        [request setDownloadCache:_cache];
        [request setCachePolicy:ASIOnlyLoadIfNotCachedCachePolicy];
        [request startAsynchronous];
        
        
        
    
    }
    
    -(void)success:(ASIHTTPRequest *)request{
        if ([request didUseCachedResponse]) {
            NSLog(@"来自于缓存");
        }
        else{
            NSLog(@"NO");
        }
    }
    
    -(void)requestFinished:(ASIHTTPRequest *)request{
        if ([request didUseCachedResponse]) {
            self.endData=[NSDate date];
            NSLog(@"来缓存-->%@",self.endData);
            self.img1.image=[UIImage imageWithData:[request responseData]];
        }
        else{
            self.endData=[NSDate date];
            
            NSLog(@"   NO-->%@",self.endData);
                self.img1.image=[UIImage imageWithData:[request responseData]];
        }
    }
    
    
    -(void)requestFailed:(ASIHTTPRequest *)request{
        
    }
    
    - (void)dealloc {
        [_img1 release];
        [self.startData release];
        [self.endData release];
        [super dealloc];
    }
    @end

    第二设置缓存

    -(void)download{
        __block ASIHTTPRequest *request=nil;
        
        NSString *url=@"http://f.hiphotos.baidu.com/album/w%3D2048/sign=288b34a9e4dde711e7d244f693d7cc1b/18d8bc3eb13533fa7f621782a9d3fd1f40345b42.jpg";
      request=[ASIHTTPRequest requestWithURL:[NSURL URLWithString:url]];
        request.delegate=self;
        //设置缓存时间
        request.secondsToCache=24*60*60*7;//一周
       
        //设置完成时回调方法
        [request setDidFinishSelector:@selector(success:)];
       
        
        NSString *cachePath=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
        cachePath =[cachePath stringByAppendingPathComponent:@"res"];
        //缓存类
        ASIDownloadCache *_cache=[ASIDownloadCache sharedCache];
        //设置缓存目录
        [_cache setStoragePath:cachePath];
        //设置缓存策略
        [_cache setDefaultCachePolicy:ASIOnlyLoadIfNotCachedCachePolicy];
        
        //request永久存储
        [request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
        [request setDownloadCache:_cache];
        
        
        
        [request startAsynchronous];
    }
    
    -(void)success:(ASIHTTPRequest *)request{
        if ([request didUseCachedResponse]) {
            NSLog(@"来自于缓存");
        }
        else{
            NSLog(@"NO");
        }
    }
    
    
    -(void)requestFailed:(ASIHTTPRequest *)request{
        
    }
  • 相关阅读:
    day2流程控制
    day1初识java
    SVG路径PATH
    Android开发 ---Media
    Android开发 ---ContentProvider数据提供者,Activity和Service就是上下文对象,短信监听器,内容观察者
    Android开发 ---ORMLite实现数据的增删改查,单例模式,Dao栈
    Android开发 ---SQLite数据库,lock文件,结果集游标,适配器,安全退出,给连接设置下划线,编辑器,投影,ContentValues存储,DbHelper,activity栈
    Android开发 ---多线程操作:Handler对象,消息队列,异步任务下载
    深入理解之 Android Handler
    Android开发 ---xml构建选项菜单、上下文菜单(长按显示菜单)、发通知、发送下载通知
  • 原文地址:https://www.cnblogs.com/gcb999/p/3238458.html
Copyright © 2011-2022 走看看