【问题标题】:Alamofire send Array of Dictionaries in a parameterAlamofire 在参数中发送字典数组
【发布时间】:2018-07-18 17:31:51
【问题描述】:

我有一个POST API,我在其中发送多个参数,其中一个参数必须是arraydictionaries

let arr = [
    [
        "id" : "1",
        "price" : "10"
    ],
    [
        "id" : "2",
        "price" : "20"
    ]
]
let params : Parameters = [

    "param1" : "anyvalue1",

    "param2" : "anyvalue2",

    "param3" : arr,

    ]

当我在 Alamofire Request 中使用这些参数并点击 API 时,print(res.result.value) 总是返回未知。谁能帮我这个。以下是请求API的方式

Alamofire.request(url, method:.post, parameters: params).responseJSON{(res) in print(res.result.value) //always shows 'unknown' as output }

【问题讨论】:

  • 您是否检查过请求,看看您的数据是否随请求一起发送?
  • 谢谢@Rocky,工作就像一个魅力。必须添加encoding: JSONEncoding.default

标签: ios alamofire swift4


【解决方案1】:

尝试使 params 像这样的 [String :Any ] 的 Dic :

let params : [String:Any] = [

    "param1" : "anyvalue1",

    "param2" : "anyvalue2",

    "param3" : arr,

    ]

【讨论】:

  • Alamofire 的参数类型是 [String:Any] 的类型别名,所以这并没有改变任何东西
  • 问题已解决。必须使用encoding: JSONEncoding.default
  • Alamofire 使用默认 encoding: JSONEncoding.default 不需要在请求中设置