Ios Alamofire是否使用公共键和多个值传递参数?

Ios Alamofire是否使用公共键和多个值传递参数?,ios,swift,api,alamofire,Ios,Swift,Api,Alamofire,我需要在我的项目中这样做: 如果我在Alamofire中手动将字符串附加到URL,我可以很容易地做到这一点,但我不希望这样。我希望参数为参数对象 参数的一个公用键中有多个值 我一直在做的是: public func findCreate(tags: [String], withBlock completion: @escaping FindCreateServiceCallBack) { /* http://baseurlsample.com/v1/categories/cr

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

如果我在Alamofire中手动将字符串附加到URL,我可以很容易地做到这一点,但我不希望这样。我希望参数为参数对象

参数的一个公用键中有多个值

我一直在做的是:

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"]
同样,问题是,在我整个代码的哪一部分我错了?如何发送具有一个公用键和多个值的上述参数

如果我添加
encoding:JSONEncoding.prettypted
encoding:JSONEncoding.default
我获得状态代码500,我还尝试将encoding选项添加到Alamofire.request()

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

其他信息:

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

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"]]

它将在
类别名称
之后为您添加
[]
,因此在声明
参数

Omg时不要包含它。。你救了我一天。这个答案正是我想要的。仅删除参数中的[]就解决了我的问题!