ASIHTTPRequest 是一款强大的网络请求框架,该框架自带了数据的缓存策略,下面来介绍该功能的使用方法。
1.创建缓存对象
//创建缓存对象
ASIDownloadCache *asiCache = [[ASIDownloadCache alloc] init];
//设置缓存目录,这里设置沙盒目录下的Documents目录作为缓存目录
NSString *document = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
[asiCache setStoragePath:document];
//设置缓存策略
[asiCache setDefaultCachePolicy:ASIOnlyLoadIfNotCachedCachePolicy];
2.请求对象设置缓存
//创建数据请求对象
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:urlstring]];
/*
*设置缓存策略
*ASICacheForSessionDurationCacheStoragePolicy 程序下次启动会清除本地的缓存数据
*ASICachePermanentlyCacheStoragePolicy 是持久缓存,程序下次启动,缓存仍然还在
*/
request.cacheStoragePolicy = ASICachePermanentlyCacheStoragePolicy;
[request setDownloadCache:[UserContext shareInstance].cache];
//开始异步请求网络
[request startAsynchronous];
3.数据请求完成后
//网络数据加载完成后调用的block
[request setCompletionBlock:^{
NSString *responseString = request.responseString;
//打印返回的数据
NSLog(@"%@",responseString);
//判断返回的数据是否来自本地缓存
if (request.didUseCachedResponse) {
NSLog(@"使用缓存数据");
} else {
NSLog(@"请求网络数据");
}
}];