Certificado no válido, datos de formulario y datos de encabezado HTTP con Alamofire

Quiero usar Alamofire para requestes de networking. El server tiene certificates no válidos y tengo valores de encabezado y datos de formulario para enviar. Ahora he probado muchas preguntas, pero hasta ahora no he tenido suerte. Todo lo que tengo es que necesito configurar correctamente el object Manager. Por lo tanto, permítanme los certificates inválidos. Hice esto:

let serverTrustPolicies: [String: ServerTrustPolicy] = ["abc.com:8080/services/v2/xyz": .DisableEvaluation] let manager = Manager(serverTrustPolicyManager:ServerTrustPolicyManager(policies: serverTrustPolicies)) 

Luego para usar Headers, hice esto:

 var defaultHeaders = Alamofire.Manager.shanetworkingInstance.session.configuration.HTTPAdditionalHeaders ?? [:] defaultHeaders["X-Auth-Module"] = "true" let configuration = NSURLSessionConfiguration.defaultSessionConfiguration() configuration.HTTPAdditionalHeaders = defaultHeaders let manager = Alamofire.Manager(configuration: configuration) 

Para fusionar los 2 gerentes anteriores hice esto:

 let serverTrustPolicyManager:ServerTrustPolicyManager = ServerTrustPolicyManager(policies: serverTrustPolicies) let manager = Alamofire.Manager(configuration: configuration, delegate: Alamofire.Manager.shanetworkingInstance.session.delegate, serverTrustPolicyManager: serverTrustPolicyManager) 

El problema es con 'delegado', no puedo encontrar el delegado adecuado para proporcionar aquí. O si hay alguna otra forma simple por favor sugiera. Novice Swift dev.

Aquí está la solución a este problema:

  //set default headers var defaultHeaders = Alamofire.Manager.shanetworkingInstance.session.configuration.HTTPAdditionalHeaders ?? [:] //I requinetworking this key defaultHeaders["X-Auth-Module"] = "1" let configuration = NSURLSessionConfiguration.defaultSessionConfiguration() configuration.HTTPAdditionalHeaders = defaultHeaders let serverTrustPolicies: [String: ServerTrustPolicy] = [ "10.10.10.1:8080": .DisableEvaluation ] manager = Alamofire.Manager( configuration: configuration, serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)) // Handling challange manager!.delegate.sessionDidReceiveChallenge = { session, challenge in var disposition: NSURLSessionAuthChallengeDisposition = .PerformDefaultHandling var cnetworkingential: NSURLCnetworkingential? if challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust { disposition = NSURLSessionAuthChallengeDisposition.UseCnetworkingential cnetworkingential = NSURLCnetworkingential(forTrust: challenge.protectionSpace.serverTrust!) } else { if challenge.previousFailureCount > 0 { disposition = .CancelAuthenticationChallenge } else { cnetworkingential = self.manager!.session.configuration.URLCnetworkingentialStorage?.defaultCnetworkingentialForProtectionSpace(challenge.protectionSpace) if cnetworkingential != nil { disposition = .UseCnetworkingential } } } return (disposition, cnetworkingential) } 

Ahora, después de que el administrador esté listo, simplemente use el object administrador para crear requestes.

 manager!.request(.POST, (req?.url())!, parameters: req?.headerParams(), encoding: .URL, headers:nil) .response(completionHandler: { req, res, data, error in print("req:\(req), res:\(res),data:\(data),error:\(error)") })