我正在使用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]
答案 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/