gpt4 book ai didi

ios - Alamofire 传递具有公共(public)键和多个值的参数?

转载 作者:搜寻专家 更新时间:2023-11-01 06:03:11 24 4
gpt4 key购买 nike

我需要在我的项目中这样做:

如果我在 Alamofire 中手动将字符串附加到我的 URL,我可以轻松地做到这一点,但我不想那样做。我希望参数作为 Parameter 对象。

参数的一个公共(public)键中有多个值

enter image description here

我一直在做什么:

public func findCreate(tags: [String], withBlock completion: @escaping FindCreateServiceCallBack) {

/* http://baseurlsample.com/v1/categories/create_multiple?category_name[]=fff&category_name[]=sss */

let findCreateEndpoint = CoreService.Endpoint.FindMultipleCategories

let parameters: Parameters = ["category_name[]" : tags]

Alamofire.request(
findCreateEndpoint,
method: .post,
parameters: parameters,
encoding: URLEncoding(destination: .queryString),
headers: nil
).responseJSON { (response) in
print(response)
}
//....
}

如果我运行它的当前结果是好的,但是发送到服务器的值有 [""]。例如:

["chocolate"]

同样,问题是,我整个代码的哪一部分是错误的?如何发送像上面那样具有一个公共(public)键和多个值的参数?

我也尝试将 encoding 选项添加到 Alamofire.request() 如果我添加 encoding: JSONEncoding.prettyPrinted编码:JSONEncoding.default 我得到状态代码 500

一些链接有相同的问题但没有确切的答案,我总是看到有答案的帖子,比如使用自定义编码,仅此而已。

附加信息:

这可行,但我需要发送多个字符串:

let parameters: [String : Any] = ["category_name[]" : tags.first!]

这也行得通:

Alamofire.request("http://baseurlsample.com/v1/categories/create_multiple?category_name[]=fff&category_name[]=sss", method: .post).responseJSON { (data) in
print(data)
}

最佳答案

您不需要为此格式自定义编码。

您可以发送这样编码的参数:

category_name[]=rock&category_name[]=paper

通过使用 URLEncoding (您已经在做)并在数组中包含应该具有相同键的多个值:

let parameters: Parameters = ["category_name": ["rock", "paper"]]

它将添加 []category_name 之后对你来说,所以当你声明 parameters 时不要包含它.

关于ios - Alamofire 传递具有公共(public)键和多个值的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44476136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com