我有一个函数,它只对UIButton
执行alamofire调用,调用的是我的Rails API,它使用的是JSON。
我将Swift 2、Alamofire 3、XCode 7和Rails 4用于部署到Heroku的API
当我启动这个函数时,我总是得到这个错误:
alamofire。error Code=-6006“JSON无法序列化。输入数据为空或零长度。
下面是我的代码:
@IBAction func Save(sender: AnyObject) {
let postsEndpoint: String = "https://APIURL"
let parameters = [
"users": [
"name": "James McHarty",
"avatar": "Some binary data",
"post": [
"title": "First Test Post",
"body": "This is the first test post for the API",
"liked": "8", //will make INT later
"img": "more binary data"
]
]
]
Alamofire.request(.POST, postsEndpoint, parameters: parameters, encoding: .JSON)
.responseJSON { response in
guard response.result.error == nil else {
// got an error in getting the data, need to handle it
print(response.result.error!)
return
}
}
print("func'd")
}
3条答案
按热度按时间gwbalxhn1#
这不是
Alamofire
或swift错误,服务器返回的响应不是JSON格式。您可以打印出响应数据并检查其中的错误。尝试这个代码来打印出我们的服务器数据,以方便识别错误并解决这个问题。
hs1rzwqc2#
服务器传回的回应不是JSON格式。您可以先使用工具来测试要求。
打印出来的错误代码不是HTTP错误代码,因为解析JSON失败
eqqqjvef3#
您需要检查mimeType,它将是“text/plain”而不是“application/json”。这就是JSONSerialization类无法解析数据的原因。