- (void)cachenetworkWithURL: (NSString *)urlString
parameter: (NSDictionary *)paraDic
susccess: (void(^)(id obj)) succeee
fail:(void(^)(NSError *error))fail{
// NSURLSession 配置
NSURLSessionConfiguration *configuration = [NSURLSessionConfigurationdefaultSessionConfiguration];
//創建 sessionManager
AFURLSessionManager *manager = [[AFURLSessionManageralloc] initWithSessionConfiguration:configuration];
//創建請求
NSMutableURLRequest *request = [[AFHTTPRequestSerializerserializer] multipartFormRequestWithMethod:@"POST"URLString:urlString parameters:paraDicconstructingBodyWithBlock:nilerror:nil];
//創建請求任務
NSURLSessionDataTask *dataTask = [manager dataTaskWithRequest:request completionHandler:^(NSURLResponse *_Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
//緩存文件路徑
NSString *cachePath = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES)firstObject] stringByAppendingString:urlString.md5];
//如果有 error ,請求失敗
//反之,請求成功
if (error) {
NSLog(@"網絡請求失敗");
//請求失敗,從本地把緩存數據取出
id obj = [NSDictionarydictionaryWithContentsOfFile:cachePath];
if (obj) {
succeee(obj[@"data"]);
}else{
fail(error);
}
}else {
//把object存儲到本地
//讀寫
[@{@"data": responseObject}writeToFile:cachePath atomically:YES];
succeee(responseObject);
}
}];
//開啓任務
[dataTaskresume];
}