Solicitud POST con datos en el cuerpo con Alamofire 4

¿Cómo es posible enviar una request POST con datos en el cuerpo HTTP con Alamofire 4? Utilicé la encoding personalizada en Swift 2.3, funcionaba bien. Convertí mi código swift 3 e intenté patwigter la encoding, pero no funcionaba. Este código:

public struct MyCustomEncoding : ParameterEncoding { private let data: Data init(data: Data) { self.data = data } public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest { var urlRequest = try urlRequest.asURLRequest() do { urlRequest.httpBody = data urlRequest.setValue("application/json", forHTTPHeaderField: "Content-Type") } catch { throw AFError.parameterEncodingFailed(reason: .jsonEncodingFailed(error: error)) } return urlRequest } 

y Alamofire solicitan:

 let enco : ParameterEncoding = MyCustomEncoding(data: ajsonData) Alamofire.request(urlString, method: .post , parameters: [:], encoding: enco , headers: headers).validate() .responseJSON { response in switch response.result { case .success: print(response) break case .failure(let error): print(error) } } 

Debe enviar la request como a continuación en swift 3

 let urlString = "https://httpbin.org/get" Alamofire.request(urlString, method: .post, parameters: ["foo": "bar"],encoding: JSONEncoding.default, headers: nil).responseJSON { response in switch response.result { case .success: print(response) break case .failure(let error): print(error) } }