Pat*_*zki 7 json ios swift alamofire
我正在尝试使用Yoda API并使用Alamofire Swift框架发送请求.我知道API正常工作,因为我已经多次使用我的Mashape API密钥测试了端点.我还可以看到请求正在发送(Mashape的主页在我的申请下).但是我的JSON响应总是如此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.sharedInstance.session.configuration.HTTPAdditionalHeaders = additionalHeaders;
Alamofire.request(.GET, url!).responseJSON { (_, _, JSON, _) in
println(JSON);
}
}
Run Code Online (Sandbox Code Playgroud)
该字字符串可以是"这是我的第一句话",并以"+"为按照API SPEC它会自动替换空间.请忽略多个println语句,它们仅用于调试.
这只是概念代码的证明,它故意没有做太多的错误检查,并且由于这个原因不是很好.如果您有任何建议我会很感激.
Alamofire请求有几种处理响应的方法.尝试处理数据响应并将其转换为String.确认响应JSON是否正常.
Alamofire.request(.GET, url!).response { (_, _, data, error) in
let str = NSString(data: data, encoding: NSUTF8StringEncoding)
println(str)
println(error)
}
Run Code Online (Sandbox Code Playgroud)
解析JSON数据时也会检出错误.
出于某种原因,这也是我对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)
}
})
Run Code Online (Sandbox Code Playgroud)
我强烈建议您使用SwiftyJSON以更好,更简单的方式管理JSON,这取决于您.
我希望这对你有帮助.
| 归档时间: |
|
| 查看次数: |
31458 次 |
| 最近记录: |