【问题标题】:Alamofire: Send multiple URL encoded parameters with same keyAlamofire:使用相同的密钥发送多个 URL 编码参数
【发布时间】:2020-12-31 19:43:14
【问题描述】:

我想给 Alamofire 请求以下内容

var postParameters=[
    "x" : "value1",
    "y" : "value2",
    "y" : "value3"
]

我如何做到这一点?

我不能把它当作任何收藏品。我只需要将其作为单独的参数提供。

任何提示都会对我有所帮助。提前致谢。

【问题讨论】:

  • 这听起来像XY Problem。为什么你认为你需要这样做?你想用这样的字典做什么?
  • 我必须使用这些参数发送 Api 请求
  • 那么要么它是一个写得很糟糕的 API,要么你误解了文档。您能否提供一个指向 API 文档的链接,告诉您您需要一个具有 2 个相同键的字典?
  • 这是不可能的。将第二个值分配给 key(y) 将替换前一个。
  • @AmuthaPriya 我最近遇到了一个类似的 API,它接受 URL 编码的参数和同一个键的多个值。幸运的是,Alamofire 可以做到这一点。看我的回答。

标签: ios swift dictionary alamofire urlencode


【解决方案1】:

在 iOS 中无法创建这样的 dict,相反,您可以进行多个 API 调用。

【讨论】:

    【解决方案2】:

    虽然无法创建具有重复键的字典,但有一种方法可以使用数组将这些类型的参数传递给您的服务器:

    let postParameters: [String: Any] = [
        "x" : "value1",
        "y" : ["value2", "value3"]
    ]
    

    然后当您调用 Alamofire 的 request 函数时,您将 URLEncoding 的新实例作为 encoding 参数传递并指定您要对数组进行编码的方式,如下所示:

    AF.request(
        "url",
        method: .post,
        parameters: postParameters,
        encoding: URLEncoding(arrayEncoding: .noBrackets)
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-01
      • 2023-02-14
      • 1970-01-01
      • 1970-01-01
      • 2018-11-12
      • 2019-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多