首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Alamofire 5迁移

Alamofire 5迁移
EN

Stack Overflow用户
提问于 2020-04-28 18:08:23
回答 1查看 566关注 0票数 1

我在将此代码迁移到Alamofire 5时遇到了问题:

代码语言:javascript
复制
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)
}

我同样修改了我的代码,但我不知道如何初始化会话管理器:

代码语言:javascript
复制
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)

有人能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2020-04-29 06:48:40

正如错误所述,您向一个未使用ServerTrustEvaluating值注册的主机发出了请求。也就是说,请求不是发送给test.com.ph的。您需要确保您正在向正确的主机发出请求,或者您已经使用了正确的主机来固定证书。

如果希望向多个主机发出请求,可以通过初始化ServerTrustManager并将allHostsMustBeEvaluated属性设置为false来禁用此行为。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61477667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档