AFNetworking - 不要缓存响应?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (28)

我正在使用此代码从服务器中提取简单的JSON:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    manager.responseSerializer = [AFJSONResponseSerializer serializer];

[manager GET:kDataUrl parameters:nil
     success:^(AFHTTPRequestOperation *operation, id responseObject) {
         NSLog(@"response: %@", responseObject);
     }
     failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         NSLog(@"JSON DataError: %@", error);
     }];

有用。但是,在更改kDataUrl中的JSON文件并验证更改是在浏览器中进行后,当我再次运行该应用程序时,仍然得到以前的响应。

提问于
用户回答回答于

只需定义你的AFNetworking经理:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager.requestSerializer setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];

用户回答回答于

参阅NSURLCach

请求的缓存行为可以通过设置对象的“缓存策略”来定义NSMutableURLRequest,例如:

NSMutableURLRequest* request = ...;
[request setCachePolicy: myCachePolicy];

默认缓存行为(NSURLRequestUseProtocolCachePolicy)适用于当前协议,即HTTP。而对于HTTP协议,GET请求将被默认缓存

而且,AFNetworking不会更改请求的默认行为

可以设置另一个缓存策略,例如:

NSURLRequestReloadIgnoringLocalCacheData

扫码关注云+社区