Alamofire ssl 错误的证书 Swift

Posted

技术标签:

【中文标题】Alamofire ssl 错误的证书 Swift【英文标题】:Alamofire ssl wrong certificates Swift 【发布时间】:2020-05-19 21:00:03 【问题描述】:

我正在尝试连接到使用无效证书的https://wrong.host.badssl.com/。

我在 Viewcontroller.swift 中的代码:

let manager = ServerTrustManager(evaluators: ["wrong.host.badssl.com:443": DisabledEvaluator()])
let session = Session(serverTrustManager: manager)
session.request("https://wrong.host.badssl.com").response  response in
    debugPrint(response)

回复是:

[Request]: GET https://wrong.host.badssl.com
[Request Body]: 
None
[Response]: 
nil
[Response Body]: 
None
[Data]: None
[Network Duration]: None
[Serialization Duration]: 0.0s
[Result]: failure(Alamofire.AFError.sessionDeinitialized)

我做错了什么?

马蒂亚斯干杯

【问题讨论】:

【参考方案1】:

如果您看到here,它清楚地解释了错误sessionDeinitialized 的详细信息

`Session` which issued the `Request` was deinitialized, most likely because its reference went out of scope.
case sessionDeinitialized

基本上,您需要保留对 Session 的引用,直到您的请求完成,否则它将被取消初始化并取消您的请求。

您可以通过 singleton 或将相同的实例注入到所有用户中,以使引用保持活动状态。你的选择。

【讨论】:

以上是关于Alamofire ssl 错误的证书 Swift的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire SSL 失败

使用 Swift 4 和 Alamofire 获取客户端证书以用于 Https 调用身份验证

使用 alamofire 通过 iOS 应用程序连接 Windows SSL 服务器

针对多个 CA 的 Alamofire 5 自定义 SSL 验证

Alamofire 未经评估并发送客户端证书

通过 Alamofire 进行 SSL 固定不起作用