#import "UIImageView+Request.h"
#import "ASIHTTPRequest.h"
#import "ASIFormDataRequest.h"
#import "ASIDownloadCache.h"
//利用类目拓展的方法
- (void)setImageWithURL:(NSURL *)url
{
ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:url];
//设置超时时间
request.timeOutSeconds = 30;
//设置请求时间
request.requestMethod = @"GET";
request.delegate = self;
//请求数据完成之后调用的block
[request setCompletionBlock:^{
//当前数据是否来此缓存
BOOL isCache = request.didUseCachedResponse;
if (isCache) {
NSLog(@"数据来此缓存");
}else{
NSLog(@"数据来此网络");
}
NSData *data = request.responseData;
self.image = [UIImage imageWithData:data];
}];
[request setFailedBlock:^{
NSError *error = request.error;
NSLog(@"请求失败:%@",error);
}];
//-----------------------设置缓存----------------------
ASIDownloadCache *cache = [[ASIDownloadCache alloc] init];
NSString *cachePath = [NSHomeDirectory() stringByAppendingString:@"Documents"];
NSLog(@"cachePath :%@",cachePath);
//1.设置缓存目录
[cache setStoragePath:cachePath];
//2.设置缓存策略
//ASIOnlyLoadIfNotCachedCachePolicy 本地没有缓存时,加载网络数据
[cache setDefaultCachePolicy:ASIOnlyLoadIfNotCachedCachePolicy];
//3.给请求对象设置缓存
[request setDownloadCache:cache];
/*
ASICacheForSessionDurationCacheStoragePolicy = 0 //每次请求数据之前,先本地缓存删除
ASICacheForSessionDurationCacheStoragePolicy = 1 //是持久缓存,下次请求时,缓存依然存在
*/
[request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
//开始异步请求
[request startAsynchronous];
}