Alamofire SSL错误证书Swift

wydwbb8l  于 2022-12-10  发布在  Swift
关注(0)|答案(2)|浏览(262)

我正在尝试连接到使用无效证书的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)

我做错了什么?
为马蒂亚斯干杯

ogq8wdun

ogq8wdun1#

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

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

实际上,您需要保留对您的Session的引用,直到您的请求完成,否则它将被取消初始化并取消您的请求。
你可以通过一个singleton或者从某个地方把同一个示例注入到所有的用户中来保持引用的活动。

6pp0gazn

6pp0gazn2#

我就是这么解决的。

if sessionObj == nil { //initialise session or whatever you are using if it is nil. }

我在这里使用的是Alamofire的Session类。

相关问题