Shared URLSession URLSession 与默认配置 有什么区别?

在我的应用程序中,我使用 URLSession.shared 向服务器发送请求。现在我正在尝试将其更改为 URLSession.init(configuration: URLSessionConfiguration.default)

但是如果我使用 URLSession.init(configuration: URLSessionConfiguration.default) 我所有的请求都需要更多的时间来加载。

URLSession.shared 相比, URLSession.init(configuration: URLSessionConfiguration.default) 需要更多时间来加载请求。(共享 session 比使用默认配置的 URLSession 快 5 到 10 倍)。

这两种方法有什么区别?

为什么带有默认配置的 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/

    10-12 13:27