Alamofire:这种语法有啥问题? “通话中的额外参数”
Posted
技术标签:
【中文标题】Alamofire:这种语法有啥问题? “通话中的额外参数”【英文标题】:Alamofire: What is wrong with this syntax? "Extra argument in call"Alamofire:这种语法有什么问题? “通话中的额外参数” 【发布时间】:2018-03-02 14:53:36 【问题描述】:我在 Swift 中使用 Alamofire 进行联网。
我需要将数据作为 httpbody 发布到 url。
这是我的代码:
let parameters = ["username": "Admin", "password": "somepassword", "client_id": "Example", "grant_type": "password", "refresh_token": "string"];
Alamofire.request(.POST, "https://XXXXXXXXXXXX", parameters: parameters, encoding: .JSON(options: nil)).responseJSON response in
print("Request: \(String(describing: response.request))") // original url request
print("Response: \(String(describing: response.response))") // http url response
print("Result: \(response.result)") // response serialization result
if let json = response.result.value
print("JSON: \(json)") // serialized json response
if let data = response.data, let utf8Text = String(data: data, encoding: .utf8)
print("Data: \(utf8Text)") // original server data as UTF8 string
这不会编译,而是我得到“调用中的额外参数”
怎么了?
感谢您的帮助。
【问题讨论】:
你用的是什么版本的alamofire? 我用的是4.2.0版 据我了解,“参数”将是 httpbody? 将编码改为encoding: JSONEncoding.default 【参考方案1】:如果您使用的是 4+ 版本的 Alamofire,则创建请求的语法不同(请参阅 migration guide):
Alamofire.request("https://XXXXXXXXXXXX",
method: .post,
parameters: parameters,
encoding: JSONEncoding.default) .responseJSON response in
// TODO: rest
【讨论】:
以上是关于Alamofire:这种语法有啥问题? “通话中的额外参数”的主要内容,如果未能解决你的问题,请参考以下文章