您的位置:首页 > 移动开发 > Swift

Alamofire分析

2016-05-27 12:38 363 查看
Manager 生成Request

Request根据请求不同生成不同的delegate对象

SessionDelegate 利用subdelegates存储对应Request的对应的deleagte

同时实现一些通用的SessionDelegate

通过self[task] 调用对应的delegate方法

之所以这么实现大概是为了是Request能处理文件上传,下载,同时请求数据。
参考 http://www.cocoachina.com/ios/20151118/14240.html

另外信任无效证书代码如下

func acceptInvalidSSLCerts() {
let manager = Alamofire.Manager.sharedInstance
print("trying to accept invalid certs")

manager.delegate.sessionDidReceiveChallenge = { session, challenge in
var disposition: NSURLSessionAuthChallengeDisposition = .PerformDefaultHandling
var credential: NSURLCredential?

print("received challenge")

if challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust {
disposition = NSURLSessionAuthChallengeDisposition.UseCredential
credential = NSURLCredential(forTrust: challenge.protectionSpace.serverTrust!)
} else {
if challenge.previousFailureCount > 0 {
disposition = .CancelAuthenticationChallenge
} else {
credential = manager.session.configuration.URLCredentialStorage?.defaultCredentialForProtectionSpace(challenge.protectionSpace)

if credential != nil {
disposition = .UseCredential
}
}
}

return (disposition, credential)
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios Alamofire swift