Search code examples
node.jsswiftswift3alamofire

How can I POST an array in Swift? (Getting bytes to my server)


I'm trying to POST an array in Swift using Alamofire.

This is my Swift code:

        var itemsToSend: [Dictionary<String, Any>] = []

        for i in 0..<selectedSongs.count {
            let app = ["Info" : selected[i]["Info"]!]
            itemsToSend.append(app)
        }

        let toSend = try! JSONSerialization.data(withJSONObject: itemsToSend, options: [])
        print(toSend) //142 bytes

        let data: [String: Any] = [
            "UID":  FIRAuth.auth()?.currentUser?.uid as Any as! String,
            "ID": "-",
            "total" : selected.count,
            "sendArray" : toSend
        ]

        let URLString = "http://www.example.com/mult/"

        Alamofire.request(URLString, method: .post, parameters: data, encoding: URLEncoding.default).responseString(completionHandler: { response in
            print(response.result.value)
        })

On my server, when I print sendArray I get: 142 bytes. How can I an array in Swift?


Solution

  • Don't convert it data simply set your array with your key sendArray.

    let data: [String: Any] = [
        "UID":  FIRAuth.auth()?.currentUser?.uid!,
        "ID": "-",
        "total" : selected.count,
        "sendArray" : itemsToSend
    ]