AlamoFire:公钥穿针不工作
问题描述:
我使用下面的共享实例创建一个会话管理器:AlamoFire:公钥穿针不工作
class Session {
static let sharedInstance = Session()
private var manager : SessionManager?
func ApiManager()->SessionManager{
if let m = self.manager{
return m
}else{
let serverTrustPolicies: [String: ServerTrustPolicy] = [
"https:api-cat.example.com": .pinPublicKeys(
publicKeys:savePublicKeys(),
validateCertificateChain:true,
validateHost:true
)]
self.manager = SessionManager(
serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies))
return self.manager!
}
}}
其中savePublicKeys
回报[SecKey]
。
即使在使用空的公钥数组设置新的ServerTrustPolicy后,我仍然能够成功调用并获取数据。 任何想法,如果我在这里犯任何错误?
答
你"https:api-cat.payeezy.com"
看起来腥。
要么删除https:
双组分或添加缺少的双斜线https://
。 ServerTrustPolicyManager
仅在其主机属性与请求的主机匹配时才应用策略,如果这些策略不匹配,则使用Apple的标准行为(请参阅Alamofire Documentation)。
这解决了我的问题。感谢ChaosCoder。只是想添加这个,但问题是在'https'后缺少'//'。你可以改变你的答案以反映相同的情况。 – SagarU