我已经搜索过这个问题,但有很多答案可供使用,但没有一个可以解决。我已将参数定义为:
let parameters = [
"name": username,
"mobile": "",
"email": email,
"password": "",
"blood_donor": "0",
"registration_id": defaults.string(forKey: "FCMToken"),
"platform": platform,
"appID": "3"
]
之后我发送请求时:
Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding(), headers: headers).responseJSON { response in
所以我在parameters
表达式隐含地来自' String?'任何
如果我将!
放在参数旁边,我就会开始收到此错误:
额外的论据'方法'在电话中
我所写的功能是:
func sendLoginCall(username: String, email: String, platform: String)
。我已经尝试将URLEncoding()
替换为JSONEncoding.default
它没有用。
我称这是这样的方法:
if let userName = data["name"], let email = data["email"] {
self.sendLoginCall(username: userName as! String, email: email as! String, platform: "fb")
}
答案 0 :(得分:2)
将parameters
类型更改为[String : Any]
,如下所示:
let parameters = [
"name": username,
"mobile": "",
"email": email,
"password": "",
"blood_donor": "0",
"registration_id": defaults.string(forKey: "FCMToken"),
"platform": platform,
"appID": "3"
] as [String : Any]
没有必要:从param参数中删除encoding: URLEncoding()
,它可以在没有编码的情况下工作。
以下是Alamofire开发人员对同一问题和解决方案的讨论:https://github.com/Alamofire/Alamofire/issues?utf8=%E2%9C%93&q=extra%20argument