我用的是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]
时,它可以工作。但在我的情况下,我需要传递字符串
发布于 2017-01-29 10:42:11
解决办法是:
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/
https://stackoverflow.com/questions/41918053
复制相似问题