使用 alamofire 更改编码 body

Change encoding body with alamofire

我需要使用此代码

更改我的 body 实际发送到我的服务器的方式
        let parameters: Parameters = [
        "users": array
    ]
    print(parameters)

    Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: ApiSvain.header)
        .responseJSON { response in
            print(response)
    }

数组是 [String]

当我打印时,我进入了 xcodeDebug:

["users": ["5ab4305e30c73c4aa140aa06", "5ab4324c30c73c4aa140aa07", "5ab432fe30c73c4aa140aa08"]]

但是在我的后端我得到了(Node/express):

[ '5ab4305e30c73c4aa140aa06', '5ab4324c30c73c4aa140aa07', '5ab432fe30c73c4aa140aa08' ]

元素之间的简单引用和 \n,我需要在后端具有该结果:

"5ab4305e30c73c4aa140aa06", "5ab4324c30c73c4aa140aa07", "5ab432fe30c73c4aa140aa08"]

您可以创建自己的URL请求并将其传递给 Alamofire 以进行 HTTP 通信。

因此,如果您想将字符串数组以 json 格式发送到服务器。只需使用 URL 创建一个 URLRequest 并将 Request 的 httpBody 设置为数据格式的序列化数组。这个URL请求可以直接加载到Alamofire

请参考下面的代码。

    let array = ["5ab4305e30c73c4aa140aa06", "5ab4324c30c73c4aa140aa07", "5ab432fe30c73c4aa140aa08" ]
    var urlRequest = URLRequest.init(url: URL.init(string: "YOUR_URL_STRING")!)
    if let data = try? JSONSerialization.data(withJSONObject: array, options: []) {
        urlRequest.httpBody = data
    }


    Alamofire.request(urlRequest)
        .responseJSON { response in
            print(response)
    }