我正在使用 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]
最佳答案
解决办法是:
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/
关于arrays - Alamofire - 将字符串数组作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41918053/