gpt4 book ai didi

ios - 更改 Alamofire.SessionManager 的 serverTrustPolicy 以仍然使用像 Alamofire.request 这样的顶级便捷方法

转载 作者:行者123 更新时间:2023-11-28 06:19:51 26 4
gpt4 key购买 nike

我在许多类中使用 Alamofire 进行联网,例如:UserApi、EpayApi、DeliveryApi 等。我的请求在任何地方都是这样的:

Alamofire
.request(MyRouter.login(login, password))
.responseJSON { response in
//
}

问题是我们的 SSL 证书在服务器上已过期 - 这只是暂时的,但我想让 Alamofire 允许调用请求,即使证书无效。

我在 stackoverflow 上找到了以下答案:

static var manager : SessionManager = {

// Create the server trust policies
let serverTrustPolicies: [String: ServerTrustPolicy] = [
"my server url": .disableEvaluation
]

// Create custom manager
let configuration = URLSessionConfiguration.default
configuration.httpAdditionalHeaders = Alamofire.SessionManager.defaultHTTPHeaders

let manager = Alamofire.SessionManager(
configuration: URLSessionConfiguration.default,
serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
)

return manager
}()

这段代码工作得很好,但问题是我必须在每个类中使用新的 SessionManager 而不是 Alamofire 单例。有什么方法可以全局更改 Alamofire 的 serverTrustPolicyManager?

使用 Alamofire v4.3.0 和 Swift v3.0。

最佳答案

只需创建类并将其命名为“NetManager”,其中包含 SessionManager 类型的静态变量。

class NetManager {

static var manager : SessionManager = {

// Create the server trust policies
let serverTrustPolicies: [String: ServerTrustPolicy] = [
"my server url": .disableEvaluation
]

// Create custom manager
let configuration = URLSessionConfiguration.default
configuration.httpAdditionalHeaders = Alamofire.SessionManager.defaultHTTPHeaders

let manager = Alamofire.SessionManager(
configuration: URLSessionConfiguration.default,
serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
)

return manager
}()

}

然后像这样使用它:

NetManager.manager
.request(MyRouter.login())
.responseJSON { response in
//
}

关于ios - 更改 Alamofire.SessionManager 的 serverTrustPolicy 以仍然使用像 Alamofire.request 这样的顶级便捷方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43978517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com