调用 Alamofire swift 4 中的额外参数“方法”

Posted

技术标签:

【中文标题】调用 Alamofire swift 4 中的额外参数“方法”【英文标题】:Extra argument 'method' in call Alamofire swift 4 【发布时间】:2018-10-22 18:36:29 【问题描述】:

我正在尝试从设备向设备发送通知,我之前在我的其他应用程序上做过此操作,但由于某种原因我收到此错误消息

调用中的额外参数“方法”

在 alamofire.request 函数中的方法。我已经在网上搜索了几个小时,并且尝试了很多解决方案,但是没有任何对我有用的信息我得到了相同的错误消息。

func setUpPushNotification(fromDevice: String) 


    let title = ""
    let body = "You got a friend request"
    let toDeviceID = fromDevice
    var headers:HTTPHeaders = HTTPHeaders()
    let Method = Alamofire.HTTPMethod.post

    headers = ["Content-Type":"application/json","Authorization":"key=\(AppDelegate.SERVERKEY)"]

    let notification = ["to":"\(toDeviceID)","notification":["body":body,"title":title,"badge":1,"sound":"default"]] as [String : Any]



    Alamofire.request(AppDelegate.NOTIFICATION_URL as URLConvertible,
                      method: Method,
                      parameters: notification,
                      encoding: JSONEncoding.default,
                      headers: headers).responseJSON  (response) in
        print(response)
    




感谢您的宝贵时间。 :)

【问题讨论】:

你能提供你正在尝试使用的 alamofire 版本吗? @harsh 我正在使用 Alamofire 4.7.3 版 【参考方案1】:

AppDelegate 中的 AppDelegate.NOTIFICATION_URL 变量有问题。

因为当我删除密钥时,这段代码开始工作。希望这会帮助您找到解决方案。

    func setUpPushNotification(fromDevice: String) 

    let title = ""
    let url = "something"
    let body = "You got a friend request"
    let toDeviceID = fromDevice
    var headers:HTTPHeaders = HTTPHeaders()
    let Method = Alamofire.HTTPMethod.post

    headers = ["Content-Type":"application/json","Authorization":"key=1236"]

    let notification = ["to":"\(toDeviceID)","notification":["body":body,"title":title,"badge":1,"sound":"default"]] as [String : Any]

    Alamofire.request(url as URLConvertible , method: Method, parameters: notification, encoding: JSONEncoding.default, headers: headers)

【讨论】:

这行得通,我不知道为什么,但我猜有一些代码具有相同的名称,所以我只是更改了 URL 上的 var 名称。谢谢楼主:)【参考方案2】:

appDelegate 是问题所在。 当我更换使用它的 2 val 时,它可以解决问题:

func setUpPushNotification(fromDevice: String) 


    let title = ""
    let body = "You got a friend request"
    let toDeviceID = fromDevice
    var headers:HTTPHeaders = HTTPHeaders()
    let Method = Alamofire.HTTPMethod.post

    headers = ["Content-Type":"application/json","Authorization":"key="]

    let notification = ["to":"\(toDeviceID)","notification":["body":body,"title":title,"badge":1,"sound":"default"]] as [String : Any]


    Alamofire.request("www...",
                      method: Method,
                      parameters: notification,
                      encoding: JSONEncoding.default,
                      headers: headers).responseJSON  (response) in
                        print(response)
    

【讨论】:

以上是关于调用 Alamofire swift 4 中的额外参数“方法”的主要内容,如果未能解决你的问题,请参考以下文章

Swift 3.0 迁移后的 Alamofire 错误:“调用中的额外参数”(请求方法)

包装在静态函数中时,Alamofire 4.0“调用中的额外参数'方法'”

Alamofire 请求收到错误“调用中的额外参数”

使用 Alamofire swift 4 上传文件

Alamofire中的“调用中的额外参数方法”

Alamofire发布请求错误调用中的额外参数“方法”