我正在尝试使用
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,这取决于您.
我希望这对你有帮助.