2016-03-27 34 views
0

我在使用NSURLSession登录到使用cookie记录成功身份验证的网站的iOS应用程序时遇到问题。对于NSURLSessionConfiguration,实际的差异背景默认值是多少?

使用defaultSessionConfiguration()我没有问题。 (它甚至在应用程序在后台并通过远程推送消息触发时起作用。)

当我将会话配置为使用backgroundSessionConfigurationWithIdentifier()时,我可以进行身份​​验证,但是后续下载不存在相应的Cookie。

当应用程序位于前景和背景中时,使用backgroundSession失败。

所以必须有影响饼干的默认和背景之间的区别。这两种配置都记录为使用共享cookie存储。

有没有人有解释和/或解决这个问题?

回答

0

这有几个原因。其中之一是因为您没有启用.plist中的后台获取设置。另一个原因是需要在整个应用程序中使用标识符持续进行会话,这是为什么您的Cookie不会在后续下载中显示的原因之一,因为某些内容正在切换。

defaultSessionConfiguration正如你所期望的那样工作,而且你习惯了,但是backgroundSessionConfiguration是完全不同的,你需要设置一些东西。

我会建议通过这个阅读来获得它的不同之处,你可以做一些信息:https://medium.com/swift-programming/learn-nsurlsession-using-swift-part-2-background-download-863426842e21#.vejklegsp

我希望这是有帮助的!

+0

感谢您的建议。 – andymc

+0

感谢@ dokun1的创意。我为所有请求使用同一个会话。我启用了后台获取 - 因此我可以完成登录验证和请求页面。我的问题依然存在:**默认和后台会话有什么区别?**我的应用程序功能齐全 - 包括在后台 - 使用默认配置。文档说在进行后台操作时使用后台配置。当我使用后台配置时,我无法使用我的服务器进行身份验证。那么,这两个配置之间的**真正的区别是什么? – andymc