我已经搜索了此问题,有很多可用的答案,但没有解决问题。我将参数定义为:
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
表达式从"字符串?"隐式强制胁迫到任何
,如果我将!
放在参数旁边,我会开始遇到此错误:
呼叫中的额外参数'方法'
我写的所有功能是: 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")
}
将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]
不需要:从参数中删除 encoding: URLEncoding()
,它可能无需编码即可起作用。
以下是Alamofire开发人员关于同一问题和解决的讨论:https://github.com/alamofire/alamofire/sissues?utf8=✓c�&q = extra argument>