我使用自签名证书服务器通信编写了一个基于swift的应用程序。 作为一个网络库,我想使用Alamofire。 但是Alamofire不支持自签名证书。
是否可以轻松实现此功能以及如何实现?
答案 0 :(得分:4)
Alamofire尚不支持此功能。它最有可能最终由社区添加,但该工作尚未提交给项目。如果您想提供此功能,请务必分叉回购并提交拉取请求。
如果您想自己了解如何实施此功能,建议您在iOS上阅读SSL pinning和TLS verification。您还可以浏览AFNetworking中的源代码,以了解它是如何实现的。
如果您没有时间自己构建此功能,那么我建议您暂时在Swift应用中使用AFNetworking。 AFNetworking与Swift完全兼容,并支持TLS验证。
答案 1 :(得分:4)
现在可以通过这种方式配置Alamofire:
let TollerantAlamofire={ ()->Alamofire.Manager in
let policies:[String:ServerTrustPolicy]=[
"www.mydemoserver.it": .DisableEvaluation
]
let manager=Alamofire.Manager(serverTrustPolicyManager:ServerTrustPolicyManager(policies:policies))
return manager
}()
稍后,当您需要发出请求时,只需使用您配置的实例:
var req:Request?
req=TollerantAlamofire
.request(method, url, parameters: params)