我在将此代码迁移到Alamofire 5时遇到了问题:
init(plugins: [PluginType] = []) {
let serverTrustPolicies: [String: ServerTrustPolicy] = [
"test.com.ph": .pinCertificates(
certificates: ServerTrustPolicy.certificates(),
validateCertificateChain: true,
validateHost: true
)
]
let configuration = URLSessionConfiguration.default
configuration.timeoutIntervalForRequest = 120 // default is 60.
let manager = Manager(
configuration: configuration,
serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
)
super.init(manager: manager, plugins: plugins)
}我同样修改了我的代码,但我不知道如何初始化会话管理器:
let pinEvaluator = PinnedCertificatesTrustEvaluator(certificates: Bundle.main.af.certificates,
acceptSelfSignedCertificates: true,
performDefaultValidation: true,
validateHost: true)
let trustManager = ServerTrustManager.init(evaluators: ["test.com.ph": pinEvaluator])
let sessionManager = Session.init(configuration: .default, serverTrustManager: trustManager)
super.init(session: sessionManager,plugins: plugins)

有人能帮我吗?
发布于 2020-04-29 06:48:40
正如错误所述,您向一个未使用ServerTrustEvaluating值注册的主机发出了请求。也就是说,请求不是发送给test.com.ph的。您需要确保您正在向正确的主机发出请求,或者您已经使用了正确的主机来固定证书。
如果希望向多个主机发出请求,可以通过初始化ServerTrustManager并将allHostsMustBeEvaluated属性设置为false来禁用此行为。
https://stackoverflow.com/questions/61477667
复制相似问题