Ios 使用AFNetworking缓存GET请求是不需要的

Ios 使用AFNetworking缓存GET请求是不需要的,ios,afnetworking,afnetworking-2,Ios,Afnetworking,Afnetworking 2,我在这里遇到了一种情况,我使用RESTAPI和AFNetworking从后端检索特定的资源(GET请求)。当我用浏览器检查后端时,结果是165,但在一个特定的设备(一个特定的iphone6plus)中,结果是5,在任何其他设备中,我检索到正确答案。我认为有东西在这个设备上缓存了结果,但在这个特定的设备上没有发现任何东西 我删除了应用程序并重新安装了它,但它再次出现错误,因此NSURLCache也不是问题所在 我用来从后端检索数据的代码,它可以在任何其他设备上正常工作,但在特定设备上不工作。(顺便

我在这里遇到了一种情况,我使用RESTAPI和AFNetworking从后端检索特定的资源(GET请求)。当我用浏览器检查后端时,结果是165,但在一个特定的设备(一个特定的iphone6plus)中,结果是5,在任何其他设备中,我检索到正确答案。我认为有东西在这个设备上缓存了结果,但在这个特定的设备上没有发现任何东西

我删除了应用程序并重新安装了它,但它再次出现错误,因此
NSURLCache
也不是问题所在

我用来从后端检索数据的代码,它可以在任何其他设备上正常工作,但在特定设备上不工作。(顺便说一句,我使用相同的用户名和密码检查所有设备和浏览器),所以情况并非如此

AFHTTPRequestOperationManager* manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];

[manager.requestSerializer setValue:[[NSUserDefaults standardUserDefaults] valueForKey:TOKEN_ID_KEY] forHTTPHeaderField:TOKEN_HTTP_HEADER_NAME];
[manager GET:[NSString stringWithFormat:@"%@%@", BASE_URL, PROFILE_URL] parameters:nil success:^(AFHTTPRequestOperation* operation, id responseObject) {
    NSLog(@"profile info request accepted with response : %@",responseObject);
    profile = [[Profile alloc] initWithDictionary:responseObject];
    [self.tableView reloadData];
} failure:^(AFHTTPRequestOperation* operation, NSError* error) {
    NSLog(@"profile info request failed with eroor : %@" , [error localizedDescription]) ;
}];

最简单的方法是禁用全局
NSURLCache
,尽管我建议不要这样做

NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0
                                                        diskCapacity:0
                                                            diskPath:nil];
[NSURLCache setSharedURLCache:sharedCache];

如果您没有找到任何解决问题的方法,那么您可以在url末尾添加当前时间。这也发生在我身上,我只是在我的url中添加了一些额外的内容,所以它总是一个新的请求

long currentTime = (long)CFAbsoluteTimeGetCurrent();
NSString *urlString = [NSString stringWithFormat:@"%@%@?%ld", 
                                                BASE_URL, 
                                                PROFILE_URL, 
                                                currentTime];

这只是一个解决办法。希望这有帮助

你能在发送请求和处理响应的地方发布一段代码吗?关于不缓存请求-
AFNetworking
正在使用共享的
NSURLCache
,你可以按照这个答案取消应用程序的缓存:@AvielGross我添加了代码,我不认为我的代码有什么错误,因为它可以在任何其他设备和浏览器上工作,所以它不仅仅在这个特定的设备上工作device@AvielGross我删除了应用程序并再次安装,但它再次出现错误,因此,这不是问题。尝试在坏设备和其他设备上使用iPhone上的
Charles Proxy
,看看请求是否有所不同:首先,我不能禁用缓存,因为我们在这个应用程序上使用map,所以如果我禁用它,瓷砖不会被缓存,其次,我删除了应用程序并再次安装,但请求无法再次运行。所以这对我没有帮助