Alamofire.error Код = -6006 "JSON не может быть сериализован
Работал над этим немного без успеха. У меня есть функция, которая идет на UIButton
исключительно для выполнения вызовов alamofire на мои rails api, который использует все JSON.
Я использую Swift 2, Alamofire 3, XCode 7 и Rails 4 для моего api, который развернут в Heroku
Я продолжаю получать эту ошибку, когда я запускаю функцию:
alamofire.error Код = -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")
}
Ответы
Ответ 1
Это не Alamofire
или быстрая ошибка. Ответ, возвращаемый сервером, не находится в формате JSON. вы можете распечатать данные ответа и проверить, что в этом не так.
попробуйте этот код, чтобы распечатать наши данные сервера, чтобы легко идентифицировать ошибку и решить эту проблему.
Alamofire.request("Your url").responseJSON(completionHandler: { (response) in
switch response.result {
case .success(let value):
break
case .failure(let error):
print("\n\n===========Error===========")
print("Error Code: \(error._code)")
print("Error Messsage: \(error.localizedDescription)")
if let data = response.data, let str = String(data: data, encoding: String.Encoding.utf8){
print("Server Error: " + str)
}
debugPrint(error as Any)
print("===========================\n\n")
}
})
Ответ 2
Ответ, возвращаемый сервером, не находится в формате JSON. Вы можете использовать инструмент, чтобы сначала протестировать запрос.
Распечатка кода ошибки не является кодом ошибки HTTP, из-за неспособности разрешить JSON