我已将.der证书添加到我的项目中,该证书由ServerTrustPolicy.certificatesInBundle()
识别。我现在正在创建一个Manager,然后用于进行API调用:
private class func manager() -> Alamofire.Manager {
let certificates = ServerTrustPolicy.PinCertificates(
certificates: ServerTrustPolicy.certificatesInBundle(),
validateCertificateChain: true,
validateHost: true
)
let serverTrustPolicies: [String: ServerTrustPolicy] = [
"api.oursite.com": certificates
]
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
let manager = Alamofire.Manager(
configuration: configuration,
serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
)
return manager
}
在此之前,它只是使用Alamofire.request(...
,这些请求工作得非常好,但现在每次通话都会给我一个错误:
Error Domain=NSURLErrorDomain Code=-999 "cancelled"
我是否错误地设置了经理?也许我的证书创建不正确,这导致这不起作用?
答案 0 :(得分:3)
请确保您的manager
在请求后的短时间内未被解除分配。例如,将其作为自定义Manager类中的存储属性。