【发布时间】:2014-06-04 03:03:07
【问题描述】:
当用户使用我的应用并且他们失去连接或使用飞行模式时,我遇到了问题。
我的应用服务器端没有设置任何缓存策略,暂时无法更改。我从 AFNetworking 1.x 迁移到 2.0,现在我在发出请求时使用 AFHTTPRequestOperationManager。问题是因为我在服务器端没有缓存策略,所以每个请求都是向服务器发出的(现在这很好)但是如果用户无法连接到我的服务器,它不会加载缓存的请求.
所以,我正在尝试以下操作,像这样直接使用AFHTTPRequestOperation:
NSURL *URL = [NSURL URLWithString:filePath];
NSMutableURLRequest *request = [[NSURLRequest requestWithURL:URL] mutableCopy];
if (![[AFNetworkReachabilityManager sharedManager] isReachable]) {
[request setCachePolicy:NSURLRequestReturnCacheDataElseLoad];
}
AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];
[[NSOperationQueue mainQueue] addOperation:op];
这样,如果AFNetworkReachabilityManager 告诉我没有连接,我为请求配置了缓存策略,并正确地从缓存中加载。
问题是,这是解决这种情况的正确方法吗?
【问题讨论】:
标签: ios caching offline afnetworking-2