共享 URLSession 和默认配置的 URLSession 有什么区别?
在我的应用程序中,我使用 URLSession.shared 向服务器发送请求。现在我尝试将其更改为 URLSession.init(configuration: URLSessionConfiguration.default)。
但是如果我使用URLSession.init(configuration: URLSessionConfiguration.default),我的所有请求都需要更多时间来加载。
与 URLSession.shared 相比,URLSession.init(configuration: URLSessionConfiguration.default) 加载请求的时间更长。(共享 session 是 5 到 10 倍)比默认配置的 URLSession 更快)。
这两种方法有什么区别?
为什么默认配置的 URLSession 需要更多时间来加载请求?
最佳答案
共享 session 的限制
- 您不提供委托(delegate)或配置对象。
- 您无法在数据从服务器到达时增量获取数据。
- 您无法大幅自定义默认连接行为。
- 您执行身份验证的能力有限。
- 当您的应用未运行时,您无法执行后台下载或上传。
换句话说,如果您使用缓存、cookie、身份验证或自定义网络协议(protocol)进行任何操作,您可能应该使用默认 session 而不是共享 session 。
了解更多信息:https://developer.apple.com/documentation/foundation/urlsession/1409000-shared
关于ios - 共享 URLSession 与默认配置的 URLSession,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57971904/