我在iOS应用程序上遇到问题,使用NSURLSession登录使用cookie记录成功身份验证的网站。
使用defaultSessionConfiguration()我没问题。 (它甚至可以在应用程序处于后台并通过远程推送消息触发时工作。)
当我将会话配置为使用backgroundSessionConfigurationWithIdentifier()时,我可以进行身份验证,但后续下载不存在相应的cookie。
当应用程序位于前台和后台时,使用backgroundSession会失败。
因此,默认和背景之间必须存在影响Cookie的区别。这两种配置都记录为使用共享cookie存储。
是否有人对此行为有解释和/或解决方法?
答案 0 :(得分:0)
这有几个原因。其中之一是因为您没有在.plist中启用后台获取设置。另一个问题是需要在整个应用程序中保留一个包含标识符的会话,这就是为什么你的cookie不会出现在后续下载中的一个原因,因为有些东西正在被启动。
defaultSessionConfiguration
按照您的预期工作而且您已经习惯了,但backgroundSessionConfiguration
完全不同,您需要设置一些内容。
我建议您仔细阅读以获取有关其如何不同以及您可以执行的操作的一些信息:https://medium.com/swift-programming/learn-nsurlsession-using-swift-part-2-background-download-863426842e21#.vejklegsp
我希望这有用!