alamofire.error Code=-6006 "JSON 无法序列化 [英] alamofire.error Code=-6006 "JSON could not be serialized

查看:39
本文介绍了alamofire.error Code=-6006 "JSON 无法序列化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

一直在研究这个,但没有成功.我有一个转到 UIButton 的函数,仅用于对使用所有 JSON 的 rails api 执行 alamofire 调用.

Been working on this for a bit with no success. I have a function that goes to a UIButton solely to perform alamofire calls to my rails api which uses all JSON.

我正在使用 Swift 2、Alamofire 3、XCode 7 &用于部署到 Heroku 的 api 的 Rails 4

I'm using Swift 2, Alamofire 3, XCode 7 & Rails 4 for my api which is deployed to Heroku

当我关闭函数时,我不断收到这个错误:

I keep getting this error when I fire off the function :

alamofire.error Code=-6006 "JSON 无法序列化.输入数据为零或长度为零.

alamofire.error Code=-6006 "JSON could not be serialized. Input data was nil or zero length.

这是我的代码:

@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")

}

推荐答案

这不是 Alamofire 或 swift 错误,服务器返回的响应不是 JSON 格式.您可以打印出响应数据并检查其中有什么问题.

This is not Alamofire or swift error, The response returned by the server is not in the JSON format. you can print out response data and check what is wrong in this.

尝试使用此代码打印出我们的服务器数据,以便轻松识别错误并解决此问题.

try this code to print out our server data to easily identifying to error and resolve this.

Alamofire.request("Your url").responseJSON(completionHandler: { (response) in
    switch response.result {
    case .success(let value):
        break

    case .failure(let error):
        print("

===========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("===========================

")
    }

})

这篇关于alamofire.error Code=-6006 "JSON 无法序列化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆