没有缓存的 iOS NSURLSessionConfiguration 无法按预期工作

Posted

技术标签:

【中文标题】没有缓存的 iOS NSURLSessionConfiguration 无法按预期工作【英文标题】:iOS NSURLSessionConfiguration without Caching not working as intended 【发布时间】:2014-07-24 12:15:54 【问题描述】:

我在 ios7 中遇到了一个安全问题。我想通过以下配置在没有任何缓存的情况下建立我的 url 连接:

+(NSURLSessionConfiguration *)createSessionConfig 

    NSURLSessionConfiguration *sessionConfig =
    [NSURLSessionConfiguration ephemeralSessionConfiguration];

    sessionConfig.allowsCellularAccess = YES;
    sessionConfig.timeoutIntervalForRequest = 30.0;
    sessionConfig.timeoutIntervalForResource = 60.0;
    sessionConfig.HTTPMaximumConnectionsPerHost = 10;
    sessionConfig.URLCache = nil;
    sessionConfig.URLCredentialStorage = nil;
    sessionConfig.HTTPCookieStorage = nil;

    return sessionConfig;

当我运行 NSURLSessionDataTask 时,仍然在文件系统上创建了带有条目的文件 Cache.db-wal。

谁能告诉我如何解决这个问题?我希望文件系统的缓存文件中没有条目。

BR, 马丁

【问题讨论】:

【参考方案1】:

我需要做一些非常相似的事情。我没有将配置实例设置为临时会话,而是使用defaultSessionConfiguration。临时会话缓存到 RAM 而不是磁盘中。因此,通过将所有不同的持久缓存属性设置为 nil 并使用默认会话,它可以按我的需要工作。

【讨论】:

以上是关于没有缓存的 iOS NSURLSessionConfiguration 无法按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

数据缓存iOS

iOS:如果没有可用的互联网,谷歌分析 SDK 是不是会缓存所有数据以便稍后发送?

玩转iOS开发 - 数据缓存

ios缓存系列---1.0

带有解析的 iOS。 PFUser.currentuser() 没有被缓存。应用重启后返回 nil

iOS缓存功能