使用Moya库,进行https证书校验

查了很多网上的文章,对moya的https证书校验基本都是略,要么就是16/17年的代码,但是运行的时候找到证书,转data格式的时候报错,崩溃; 我用的Moya库版本号是11的,pod 'Moya', '~> 11.0' 不费话,下面直接看代码吧,希望对你们有帮助;

public func defaultAlamofireManager() -> Manager {
   let configuration = URLSessionConfiguration.default
   configuration.httpAdditionalHeaders = Alamofire.SessionManager.defaultHTTPHeaders
   //获取本地证书
   let path: String = Bundle.main.path(forResource: "证书名", ofType: "cer")!
   let certificateData = try? Data(contentsOf: URL(fileURLWithPath: path)) as CFData
   let certificate = SecCertificateCreateWithData(nil, certificateData!)
   let certificates :[SecCertificate] = [certificate!]
   
   let policies: [String: ServerTrustPolicy] = [
       "域名" : .pinCertificates(certificates: certificates, validateCertificateChain: true, validateHost: true)
   ]
   let manager = Alamofire.SessionManager(configuration: configuration,serverTrustPolicyManager: ServerTrustPolicyManager(policies: policies))
   return manager
}
//把defaultAlamofireManager当参数传进去就行了
let kProvider = MoyaProvider<APIManager>(endpointClosure: myEndpointClosure, requestClosure: requestClosure, manager:defaultAlamofireManager(), plugins: [networkPlugin], trackInflights: false)
复制代码

转载于:https://juejin.im/post/5b2218fb6fb9a00e7f17cb8e

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值