Alamofire Get Request y JSON Response

Estoy intentando usar la API de Yoda y enviar una request utilizando el marco Alamofire Swift. Sé que la API funciona correctamente, ya que he probado el punto final con mi API de Mashape varias veces. También puedo ver que las requestes se envían (página de inicio de Mashape en mi request). Sin embargo, mi respuesta JSON es siempre nil .

 func handleRequest(words:String){ var saying = words.stringByReplacingOccurrencesOfString(" ", withString: "+"); saying = "?sentence=" + saying; let url = NSURL(string: (baseURL+saying)); println(url); var response:String; Alamofire.Manager.shanetworkingInstance.session.configuration.HTTPAdditionalHeaders = additionalHeaders; Alamofire.request(.GET, url!).responseJSON { (_, _, JSON, _) in println(JSON); } } 

La cadena de palabras puede ser "Esta es mi primera oración" y replaceá automáticamente los espacios con "+" según la especificación de la API. Ignore las declaraciones múltiples de println , son solo para debugging.

Esto es solo una testing del código conceptual, a propósito no está haciendo mucha comprobación de errores y no es bonito por ese motivo. Si tienes alguna sugerencia, los apreciaría.

Por alguna razón, es un problema que también tengo con la request de Alamofire para JSON. Es la forma en que manejo las requestes JSON usando Alamofire:

 Alamofire.request(.GET, urlTo, parameters: nil, encoding: .URL).responseString(completionHandler: { (request: NSURLRequest, response: NSHTTPURLResponse?, responseBody: String?, error: NSError?) -> Void in // Convert the response to NSData to handle with SwiftyJSON if let data = (responseBody as NSString).dataUsingEncoding(NSUTF8StringEncoding) { let json = JSON(data: data) println(json) } }) 

Le recomiendo que use SwiftyJSON para administrar JSON de una manera mejor y más fácil, depende de usted.

Espero que esto te ayude.

La request de Alamofire tiene varios methods para manejar la respuesta. Intente manejar la respuesta de datos y conviértalo en String. Confirme que la respuesta JSON es normal.

 Alamofire.request(.GET, url!).response { (_, _, data, error) in let str = NSString(data: data, encoding: NSUTF8StringEncoding) println(str) println(error) } 

También se comtesting el error mientras se analizan los datos JSON.