Alamofire ssl 错误证书 Swift

Cus*_*dro 2 ssl https swift alamofire

我正在尝试连接到使用无效证书的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)
}
Run Code Online (Sandbox Code Playgroud)

响应是:

[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)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

欢呼马蒂亚斯

小智 5

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

`Session` which issued the `Request` was deinitialized, most likely because its reference went out of scope.
case sessionDeinitialized
Run Code Online (Sandbox Code Playgroud)

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

您可以通过单例或通过从保持引用活动的某个位置将相同的实例注入到所有用户中来做到这一点。你的选择。