优化网络层中重新创建标头的最佳方式



我的应用程序非常频繁地调用api,每次创建带有一些细节的头部分

标题详细信息类型

  1. 代币可能在
  2. 未更改的值,如设备型号
  3. 随版本变化的值:版本名称&捆绑包编号
  4. 我从用户默认值中获取的值

我的代码看起来像:

var header: [String: Any] = [:]
header[Constant.Token] = getToken() // Can be changed during each call
header[Constant.Model] = getModel() // Device model remains same
header[Constant.Version] = getVersion() // Fetch version
header[Constant.Build] = getBuild() // Fetch build
..
..
..
..
..
..
....
// Attach header

什么是正确的方法来使用一些哈希值并找到diff,以及在需要的时候从头开始制作字典。

有关不会更改的信息,如应用程序版本、内部版本号等。您不必为每个api调用读取/创建这些头值。

您可以将它们初始化为defaultHTTPHeaders一次,并用于所有api调用。

let defaultHTTPHeaders: [String: Any] = {
return [
Constant.Model : getModel(),
Constant.Version : getVersion(),
Constant.Build : getBuild(),
]
}()

对于像Constant.Token这样可以更改的信息,您可以继续做今天的事情。所以你更新的实现可能看起来像-

var headers = self.defaultHTTPHeaders
headers[Constant.Token] = getToken()

通过这种方式,您只对必要的标头(可以更改(重复此任务。

最新更新