网络请求和响应保留在内存中

时间:2015-06-05 00:06:34

标签: ios objective-c afnetworking memory-dump

我正在使用AFNetworking作为我的基本网络课程。当我在越狱手机上进行内存转储时,我可以很容易地在纯文本转储文件中看到请求网址或响应(如json对象)。我在xcode中检查了泄漏工具,并且基于此没有内存泄漏。我的应用程序在网址或响应中包含敏感数据(如用户名,电子邮件地址...),我想在连接完成后立即清除这些信息。

我尝试在应用中禁用NSURLCache:

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

我也尝试过:

[[NSURLCache sharedURLCache] removeAllCachedResponses];

[[NSURLCache sharedURLCache] removeCachedResponseForRequest:NSURLRequest];

但这些都不起作用。 有谁知道怎么做?

1 个答案:

答案 0 :(得分:0)

你试过这个吗?

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager.requestSerializer setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];

此外,您还需要从服务器端脚本的标头响应中禁用缓存。如果是在PHP中:

<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>

Apple很好地尊重了响应标头。