我正在尝试使用
Yoda API并使用
Alamofire Swift框架发送请求.我知道API正常工作,因为我已经多次使用我的Mashape API密钥测试了端点.我还可以看到请求正在发送(Mashape的主页在我的申请下).但是我的JSON响应总是为零.
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.sharedInstance.session.configuration.HTTPAdditionalHeaders = additionalHeaders; Alamofire.request(.GET,url!).responseJSON { (_,_,JSON,_) in println(JSON); } }
单词string可以是“这是我的第一句话”,它将根据API规范自动用“”替换空格.请忽略多个println语句,它们仅用于调试.
解决方法
出于某种原因,这也是我对Alamofire JSON请求的一个问题.这是我使用Alamofire处理JSON请求的方式:
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) } })
我强烈建议您使用SwiftyJSON以更好,更简单的方式管理JSON,这取决于您.
我希望这对你有帮助.