AFNetworking - do not cache response
Make long story short, just define your AFNetworking manager:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager.requestSerializer setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
Enjoy!
What you are experiencing is the effect of the URL cache (see NSURLCache).
The caching behavior of the request can be defined by setting a "Cache Policy" for the NSMutableURLRequest
object, e.g.:
NSMutableURLRequest* request = ...;
[request setCachePolicy: myCachePolicy];
The default caching behavior (NSURLRequestUseProtocolCachePolicy
) is appropriate for the current protocol, which is HTTP. And for the HTTP protocol, a GET requests will be cached by default!
And, AFNetworking does not change the default behavior of the request!
Now, you could set another cache policy, for example:
NSURLRequestReloadIgnoringLocalCacheData
Specifies that the data for the URL load should be loaded from the originating source. No existing cache data should be used to satisfy a URL load request.
This is likely the desired behavior you want to achieve:
[request setCachePolicy: NSURLRequestReloadIgnoringLocalCacheData];
The problem here is, that the super "convenient" API does not provide a way to configure the URL cache behavior of the request. You cannot access the used request at all.
Thus, I would suggest to use a lower level API where you have control about the created NSMutableURLRequest
object, and set the cache policy accordingly.