Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在Swift中发布阵列?(正在向我的服务器获取字节)_Node.js_Swift_Swift3_Alamofire - Fatal编程技术网

Node.js 如何在Swift中发布阵列?(正在向我的服务器获取字节)

Node.js 如何在Swift中发布阵列?(正在向我的服务器获取字节),node.js,swift,swift3,alamofire,Node.js,Swift,Swift3,Alamofire,我正试图使用阿拉莫菲尔在Swift中发布一个数组 这是我的Swift代码: var itemsToSend: [Dictionary<String, Any>] = [] for i in 0..<selectedSongs.count { let app = ["Info" : selected[i]["Info"]!] itemsToSend.append(app) }

我正试图使用阿拉莫菲尔在Swift中发布一个数组

这是我的Swift代码:

        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)
        })
var itemsToSend:[字典]=[]

对于0中的i..不转换数据,只需使用键设置数组
sendArray

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

如果您使用的是Alamofire,则不需要使用
JSONSerialization
,在发送请求时使用
JSONEncoding.default
作为编码选项

let data:[String: Any] = ["foo":"bar", "items":["this", "is", "an", "array"]]

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

在服务器端,您需要使用JSON解码器而不是URL解码器来解码帖子正文

尝试过了,当我在服务器上打印时,我得到了
未定义的
。@user82395214然后检查
sendArray
键是否为该键。我不确定您的意思是什么
console.log(req.body.sendary)
products
undefined
@user82395214将编码更改为
JSONEncoding.default
中的
URLEncoding.default