Cuerpo de request de Alamofire de printing

Estoy usando la biblioteca Alamofire para conectar con una API en iOs. Tengo un problema en una de las conexiones, y no sé si se debe a los datos codificados en el cuerpo o cualquier otra cosa. Para detectar mi error, estoy intentando imprimir en la console el cuerpo de la request para verificar si estoy enviando la estructura de datos correcta.

Mi código es el siguiente:

func updateUser (#user: User, completionHandler: (responseObject: User?, error: AnyObject?) -> ()) { let parameters = [ "_id": "\(user._id!)", "email": "\(user.email!)", "media": "\(Mapper().toJSONArray(user.media!))", "blogs": "\(Mapper().toJSONArray(user.blogs!))" ] var manager = Alamofire.Manager.shanetworkingInstance manager.request(.PUT, apiUrl + "/route/to/api", parameters: parameters, encoding: .JSON) .responseObject{ (req: NSURLRequest, res: NSHTTPURLResponse?, user: User?, data: AnyObject?, error: NSError?) in if(error != nil) { NSLog("Error API updateUser: \(error)") } else { completionHandler(responseObject: user as User?, error: data) } } } 

El usuario es un object Mappable, ya que estoy usando ObjectMapper combinado con Alamofire. El usuario está definido por el siguiente código:

 class User: Mappable { var _id: String? var name: String? var media: [Media]? init(_id: String, name: String, media: [Media]){ self._id = _id; self.name = name; self.media = media } requinetworking init=(_ map: Map){ mapping(map) } func mapping(map: Map){ _id <- map["_id"] name <- map["name"] media <- map["media"] } } 

Los medios se definen como Usuario, pero con diferentes variables.

Además, me gustaría saber, además del cuerpo de la request de printing, si pudiera include los parameters a la request de Alimofire de una manera más eficiente (algo así como analizar el object de Usuario y sustituirlo por la variable de parameters)

¿Alguna idea sobre mis problemas?

EDITAR:

Siguiendo la sugerencia de @Travis, finalmente encontré la solución para imprimir el cuerpo de la request. A continuación puede encontrar el código:

 println("request body: \(NSString(data:req.HTTPBody!, encoding:NSUTF8StringEncoding) as String?)") 

Acerca de pasar como parameters un object que no podría funcionar, seguí la documentation oficial, pero podría hacerlo.

La respuesta a su primera pregunta es,

 println("request body: \(request.HTTPBody)") 

En cuanto a su segunda pregunta, hay una sección completa sobre la Abstracción de parameters API, así como la CRUD y la Autorización en la página principal de Alamofire .

Para Swift 3+

 print(NSString(data: (response.request?.httpBody)!, encoding: String.Encoding.utf8.rawValue)) 

Solo para convertirlo un poco más fácil.

  if let requestBody = request.request?.HTTPBody { do { let jsonArray = try NSJSONSerialization.JSONObjectWithData(requestBody, options: []) print("Array: \(jsonArray)") } catch { print("Error: \(error)") } }