而开发一个应用程序在通信与我的后端写在PHP使用交响乐,我想连接我的应用程序到Symfony的本地开发服务器…我使用Alamofire进行http请求。但是本地开发服务器没有有效的ssl证书,因为它是自签名的。我已经尝试使用自定义会话和管理器来设置"证书忽略"。安装在我的mac IP上,但这不管用。这是我得到的错误:
Session was invalidated without error, so it was likely deinitialized unexpectedly. Be sure to retain a reference to your Session for the duration of your requests.
这是代码:
let manager = ServerTrustManager(evaluators: ["192.168.2.9": DisabledEvaluator()])
let session = Session(serverTrustManager: manager)
session.request("https://192.168.2.9:8000/api/tables/1", method: .get)
.responseDecodable(of: Table.self){response in
...
}
这是什么类型的错误,我该怎么做?
我是Alamofire的新手,如果我能解决这个问题,我会很高兴!!
您提供的错误消息包括解决方案:至少在请求的整个生命周期内维护对您创建的Session
的引用。这通常是通过使用单例实现的。在开发过程中,您可以简单地在响应处理程序中捕获Session
:
.responseDecodable(of: Table.self) { response in
// Handle response
_ = session
}
这是一个快速而肮脏的技巧,你不应该长时间使用,如果你不使用捕获的引用做任何事情,可能会与自动引用计数发生冲突,但它应该帮助你开始。