我的应用程序中有一些请求使用HTTPS的REST服务,所以在我的AppDelegate中,我想从Alamofire配置一次Session Manager以使用ServerTrustPolicy。
我使用下面的代码,但是我必须在每个Alamofire请求之前使用相同的代码,现在我正在重构我的代码,并且我想知道如何配置会话管理器而不必更改snipet代码我使用 Alamofire.request 。
private static var Manager: Alamofire.SessionManager = {
// Create the server trust policies
let serverTrustPolicies: [String: ServerTrustPolicy] = [
"https://www.example.com": .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
}()
修改
我尝试创建扩展程序,但没有用。
extension SessionManager {
convenience init() {
print("xxxxxx")
let policies: [String: ServerTrustPolicy] = ["https://www.example.com.br": .disableEvaluation]
let manager = ServerTrustPolicyManager(policies: policies)
self.init(configuration: URLSessionConfiguration.default,
delegate: SessionDelegate(),
serverTrustPolicyManager: manager)
}
}