首页 > 解决方案 > 使用默认配置共享 URLSession 与 URLSession

问题描述

Shared URLSessionURLSession 默认配置有什么区别?

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

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

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

这两种方法有什么区别?

为什么使用默认配置的 URLSession 需要更多时间来加载请求?

标签: iosswiftmacos

解决方案


共享会话的限制

  • 您不提供委托或配置对象。
  • 当数据从服务器到达时,您无法以增量方式获取数据。
  • 您无法显着自定义默认连接行为。
  • 您执行身份验证的能力是有限的。
  • 当您的应用未运行时,您无法执行后台下载或上传。

换句话说,如果您使用缓存、cookie、身份验证或自定义网络协议做任何事情,您可能应该使用默认会话而不是共享会话。

欲了解更多信息:https ://developer.apple.com/documentation/foundation/urlsession/1409000-shared


推荐阅读