ios - 使用默认配置共享 URLSession 与 URLSession
问题描述
Shared URLSession和URLSession 默认配置有什么区别?
在我的应用程序中,我使用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 需要更多时间来加载请求?
解决方案
共享会话的限制
- 您不提供委托或配置对象。
- 当数据从服务器到达时,您无法以增量方式获取数据。
- 您无法显着自定义默认连接行为。
- 您执行身份验证的能力是有限的。
- 当您的应用未运行时,您无法执行后台下载或上传。
换句话说,如果您使用缓存、cookie、身份验证或自定义网络协议做任何事情,您可能应该使用默认会话而不是共享会话。
欲了解更多信息:https ://developer.apple.com/documentation/foundation/urlsession/1409000-shared
推荐阅读
- c# - 在旧(2014.4.18.0)VLC 媒体播放器中的视频轨道 2 中播放视频 - 设置视频轨道
- laravel - 数据表可以显示数据/结果,但有时(通常)在加载或搜索数据时会出现错误 404
- python - beautifulsoup:获取 html 标签内的内容
- hybrid-mobile-app - 如何在cordova插件中进行自定义?
- java - 云发布/订阅接收器中未收到消息
- java - 对于不同的java版本,写入和读取png图像必须相同
- cordova - Ionic 3 - 如何获取应用程序版本号?
- regex - 在 Notepad++ 中使用正则表达式应用标题大小写(又名正确大小写)作为查找和替换
- jquery - 使用带有 jquery UI 的 Promise
- java - 如何使用 Tomcat 定义默认上下文元素?