带有 Symfony 开发服务器的 Alamofire 没有有效的 ssl
Posted
技术标签:
【中文标题】带有 Symfony 开发服务器的 Alamofire 没有有效的 ssl【英文标题】:Alamofire with Symfony development server without valid ssl 【发布时间】:2021-08-18 18:42:58 【问题描述】:在使用 symphony 开发与我用 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 非常陌生,如果我能解决这个问题会很高兴!!!
【问题讨论】:
【参考方案1】:您提供的错误消息包括解决方案:至少在请求的整个生命周期内保持对您创建的Session
的引用。这通常是通过使用单例来完成的。在开发中,您可以简单地在响应处理程序中捕获Session
:
.responseDecodable(of: Table.self) response in
// Handle response
_ = session
这是一个快速而肮脏的 hack,您不应该长时间使用它,如果您不将捕获的引用用于任何事情,它可能会与自动引用计数发生冲突,但它应该可以帮助您入门。
【讨论】:
谢谢 - 只是在度假时使用它,没有我的 WebServer 只是为了本地开发以上是关于带有 Symfony 开发服务器的 Alamofire 没有有效的 ssl的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Symfony 进程运行带有参数的 Laravel Artisan 命令 [重复]
为啥升级到 Symfony 4.4 后我不再看到错误预览页面?
CSRF 和 RESTful API (symfony2, php)