Alamofire - 将字符串数组作为参数传递

时间:2017-01-29 05:51:32

标签: arrays swift alamofire

我正在使用swift3和Alamofire 4.

我需要将数据传递给API,API将字符串数组作为POST参数。

问题是 - 据我所知 - Alamofire只接受[String:Any]类型的参数。

我该如何使用该API?

CODE:

func PostAPIWithHeaders(url: String, parameters: [String], header: HTTPHeaders, callback: @escaping (JSON) -> ()) {

        Alamofire.request(url, method: .post, parameters: parameters, headers: header).responseJSON { (response) in
            switch response.result {
            case .success(let value):
                let json = JSON(value)
                callback(json)
            case .failure(let error):
                print(error)
            }
        }
    }

此代码产生错误:Extra argument 'method' in call

当我将参数类型从[String]更改为[String:Any]时,它可以正常工作。但在我的情况下,我需要传递[String]

1 个答案:

答案 0 :(得分:0)

解决方案是:

func PostAPIWithHeaders(url: String, parameters: [String], header: HTTPHeaders, callback: @escaping (JSON) -> ()) {


    let postParameters: Parameters = [ "entpointkeyname": parameters ]

    Alamofire.request(url, method: .post, parameters: postParameters, headers: header).responseJSON { (response) in
        switch response.result {
        case .success(let value):
            let json = JSON(value)
            callback(json)
        case .failure(let error):
            print(error)
        }
    }
}

PS:这是alamofire示例中的这一行:

"baz": ["a", 1],

参见:可能的json结构:http://json.org/