首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AFJSONRequestOperation / AFHTTPClient提取旧数据

AFJSONRequestOperation / AFHTTPClient提取旧数据
EN

Stack Overflow用户
提问于 2013-01-09 16:04:08
回答 2查看 347关注 0票数 1

因此,我所要做的就是在某个地方提供一个.json文件(我已经尝试了我自己的个人服务器,也尝试过AppFog),然后在iOS平台上使用AFJSONRequestOperation执行GET请求。执行此请求的代码如下:

代码语言:javascript
复制
AFHTTPClient *aclient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:kBaseURL]];
NSURLRequest *request = [aclient requestWithMethod:@"GET"
                                           path:@"voucher.json"
                                     parameters:nil];

AFJSONRequestOperation *op = [[AFJSONRequestOperation alloc] initWithRequest:request];
[op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"%@", (NSString *)responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

[op start];

这里的问题是,假设.json文件最初包含一个由2个字符串组成的数组。上面的代码会很好地获取这些对象。然后,如果我用另外3个字符串编辑了.json文件,那么重新运行代码将继续只获取两个旧字符串。

在我对.json文件进行更改后10到15分钟就会刷新更新后的数据。起初以为这是缓存问题,但是设置客户端setCachingPolicy:没有什么区别。

无论是在静态服务器上承载.json文件,还是在AppFog上的服务器中运行,都存在这个问题。它只是不断地返回所请求的资源的旧版本。

我对此感到非常困惑:因此,任何帮助都是非常感谢的!

EN

回答 2

Stack Overflow用户

发布于 2013-10-13 18:26:50

确保url请求没有缓存数据。我必须实现以下操作,以便每次进行获取时都能获得新的json数据。

代码语言:javascript
复制
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:5];
票数 0
EN

Stack Overflow用户

发布于 2013-10-13 18:32:38

这可能是一个缓存问题--您可以更改请求上的缓存策略,或者在查询字符串上追加一些内容,比如当前时间。

要做到这一点,您可以使用以下内容:

代码语言:javascript
复制
[aclient requestWithMethod:@"GET"
                      path:[NSString stringWithFormat:@"voucher.json?%@", [NSDate date]]
                parameters:nil];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14241295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档