在 Swift 中将数组转换为 Alamofire 参数

Posted

技术标签:

【中文标题】在 Swift 中将数组转换为 Alamofire 参数【英文标题】:Convert array into Alamofire parameters in Swift 【发布时间】:2018-10-15 06:17:10 【问题描述】:

我正在使用Alamofire 在外部 API 上调用 .put 方法。在 Postman 中,我可以按以下格式成功传递原始 JSON 数据,其中每个项目都包含一个 ID 和一个数量。 :

[
    "id":"176",
    "quantity":"2"
, 
    "id":"178",
    "quantity":"1"
]

cURL 示例:

PUT /cart HTTP/1.1
Host: someapi.biz
x-api-key: somekey
x-auth-token: sometoken
Content-Type: application/json
cache-control: no-cache
Postman-Token: sometoken
[
    "id":"176",
    "quantity":"2"
, 
    "id":"178",
    "quantity":"1"
]------WebKitFormBoundary7MA4YWxkTrZu0gW--

我不知道如何将这些信息正确地格式化为 Alamofire 的一组参数。

    for item in OrderedItems 
                let rowItem: JSON = ["id" : item.ID, "quantity" : item.Quantity]
??

【问题讨论】:

对于相同的参数键,您要发送然后使用Alomofire的多部分格式。 【参考方案1】:

检查以下代码:

var arrParam = [Any]()
    for item in OrderedItems
    
        let rowItem: JSON = ["id" : item.ID, "quantity" : item.Quantity]
        arrTemp.append(rowItem)
    

    // Convert Array into JSON String (Raw)
    guard let data = try? JSONSerialization.data(withJSONObject: arrParam, options: []) else 
        return
    
    let paramString = String(data: data, encoding: String.Encoding.utf8)

    var request = URLRequest(url: URL(string: "URL")!)
    request.httpMethod = HTTPMethod.put.rawValue
    request.httpBody = paramString?.data(using: .utf8)

    Alamofire.request(request).responseJSON  (response) in

    

希望这会对你有所帮助。

【讨论】:

这完美地工作。谢谢你帮助澄清这一! SPAN>

以上是关于在 Swift 中将数组转换为 Alamofire 参数的主要内容,如果未能解决你的问题,请参考以下文章

在 Alamofire Swift 3 中将数组作为参数发送

在 Swift 中将 Alamofire 结果解析为对象(使用:Alamofire、SwiftyJSON 和 ObjectMapper)

在 Swift 中将字节数组转换为 UIImage

如何在 Swift 中将单个数组转换为嵌套数组? [复制]

如何在 Swift 中将 Floats 的 ContiguousArray 转换为字节数组?

如何在 Swift 4 中将 UIImage 转换为字节数组