OStack程序员社区-中国程序员成长平台

标题: ios - 调用 Alamofire 时的额外参数 'method' [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 02:38
标题: ios - 调用 Alamofire 时的额外参数 'method'

我已经搜索过这个问题,有很多可用的答案,但没有一个能解决。我将参数定义为:

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

的警告

Expression implicitly coerced from 'String?' to Any

如果我将 ! 放在参数旁边,我开始收到此错误:

Extra argument 'method' in call

我写这一切的函数是: 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")
                        }



Best Answer-推荐答案


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/issues?utf8=%E2%9C%93&q=extra%20argument

关于ios - 调用 Alamofire 时的额外参数 'method',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46524950/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4