利用Alamofire,我注意到下面的代码没有被断点击中.我建立连接,并收到以下错误:(错误域= NSURLErrorDomain代码= -1200“发生SSL错误,无法建立与服务器的安全连接.”UserInfo = 0x1741b3f60 {_kcfStreamErrorCodeKey = -9806,NSLocalizedRecoverySuggestion =是否要连接到服务器?,NSUnderlyingError = 0x17484b8e0“操作无法完成.(kcfErrorDomainCFNetwork error -1200.)”,NSLocalizedDescription =发生SSL错误,无法建立与服务器的安全连接.,
func connection(urlRequest:NSURLRequest,rest:RESTFull?,completion: (AnyObject?,NSError?)->Void){ let req = request(urlRequest).responseJSON(options: .AllowFragments) { (_,response,data,error) -> Void in if let actualData: AnyObject = data { completion(actualData,nil) }else { completion(nil,error) } } req.delegate.taskDidReceiveChallenge = { session,_,challenge in println("Got challenge: \(challenge),in session \(session)") var disposition: NSURLSessionAuthChallengedisposition = .UseCredential var credential: NSURLCredential = NSURLCredential() if (challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust){ disposition = NSURLSessionAuthChallengedisposition.UseCredential credential = NSURLCredential(forTrust: challenge.protectionSpace.serverTrust!) } return(disposition,credential) } }
解决方法
您无法将值设置为Request Class的taskDidReceiveChallenge.您可以改用Manager类的委托.
Manager.sharedInstance.delegate.taskDidReceiveChallenge = { session,challenge in print("Got challenge: \(challenge),in session \(session)") var disposition: NSURLSessionAuthChallengedisposition = .UseCredential var credential: NSURLCredential = NSURLCredential() if (challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust){ disposition = NSURLSessionAuthChallengedisposition.UseCredential credential = NSURLCredential(forTrust: challenge.protectionSpace.serverTrust!) } return(disposition,credential) }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。