【问题标题】:Alamofire - pass string array as parameterAlamofire - 将字符串数组作为参数传递
【发布时间】:2017-06-14 13:21:18
【问题描述】:

我正在使用 swift3 和 Alamofire 4。

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

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

如何使用该 API?

代码:

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]

【问题讨论】:

标签: arrays swift alamofire


【解决方案1】:

解决办法是:

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/

【讨论】: