2

我正在尝试从服务器获取 JSON 文件,然后将其显示在表格中,这很好,但是,由于某种原因,AFNetworking 即使在应用程序重新启动后也会缓存 JSON 文件。我怎样才能禁用它?

 NSURL *url = [NSURL URLWithString:@"http://?json"];

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    AFJSONRequestOperation *operation = [AFJSONRequestOperation
                                         JSONRequestOperationWithRequest:request
                                         success:^(NSURLRequest *request, NSHTTPURLResponse *response, id responseObject)
                                         {

                                             self.dataget = [responseObject objectForKey:@"data"];
                                             [self.tableView reloadData];


                                         }
                                         failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id responseObject)
                                         {

                                             [HUD hideUIBlockingIndicator];
                                         }];

    [operation start];

json 文件可能没有缓存在服务器端: Cache-Control: no-cache[CRLF]

4

3 回答 3

4

可以在NSMutableURLRequest对象上设置缓存行为,使用setCachePolicy:. 否则,内置共享NSURLCache将尊重服务器定义的缓存行为(我建议调整和利用,而不是完全无视)。

于 2013-08-08T19:00:50.390 回答
0

AFNetworking 不做任何缓存。此外,“Cache-Control”HTTP 标头告诉客户端不要缓存页面(即 AFNetworking),而不是服务器。

听起来您的服务器正在缓存 JSON 页面。

于 2013-08-08T13:22:13.757 回答
0

AFNetworking 不缓存任何内容。您可能应该检查响应的缓存控制标头。如果我没有错,那么您的服务器正在发送一些 NSUrlConnection 正在考虑的缓存控制标头。我建议您在向服务器发出请求之前将 NSURLRequest 的缓存策略设置为 NSURLRequestReloadIgnoringLocalCacheData

于 2013-08-08T19:23:08.240 回答