带有Etag缓存的AFNetworking Rest API

时间:2013-09-12 05:51:55

标签: json caching afnetworking etag nsmutableurlrequest

我正在尝试在我使用AFNetworking发送的GET请求中实现etag缓存,但我似乎找不到具有AFNetworking REST API~AND缓存的解决方案。需要示例代码,说明如何发送GET / POST并控制缓存。我现在所拥有的只是请求,而不是缓存:

NSString *path = @"path/to/my.json";
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:self.baseNSURL];
[client registerHTTPOperationClass:[AFJSONRequestOperation class]];
[client setDefaultHeader:@"Accept" value:@"application/json"];
[client getPath:path
     parameters:nil
        success:^(AFHTTPRequestOperation *operation, id responseObject) {
            NSLog(@"%@",responseObject);
        }
        failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            NSLog(@"%@",error);
        }
 ];

和传出的HEADER(无缓存控制):

获取路径/到/ my.json HTTP / 1.1 主持人:x.y.com:80 Accept-Encoding:gzip,deflate 接受:application / json Cookie:PHPSESSID = 35gojgf7s35n8fljlvd5pjudfn0 连接:保持活力 Accept-Language:en,fr,de,ja,nl,it,es,pt,pt-PT,da,fi,nb,sv,ko,zh-Hans,zh-Hant,ru,pl,tr,uk, ar,hr,cs,el,he,ro,sk,th,id,ms,en-GB,ca,hu,vi,en-us; q = 0.8 User-Agent:myApp / 1.0(iPhone模拟器; iOS 6.1; Scale / 1.00) X-Forwarded-For:192.130.1.00

1 个答案:

答案 0 :(得分:0)

AFNetworking只遵循NSURLRequest / NSURLCache规则。因此,您需要添加缓存控制标头以便以这种方式缓存到磁盘。如果您想要更多地手动控制磁盘缓存,也可以使用(或修改)SDURLCache