【问题标题】: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

标签: ios swift network-programming alamofire


【解决方案1】:

如果您使用的是 4+ 版本的 Alamofire,则创建请求的语法不同(请参阅 migration guide):

Alamofire.request("https://XXXXXXXXXXXX", 
                  method: .post,
                  parameters: parameters,
                  encoding: JSONEncoding.default) .responseJSON { response in
    // TODO: rest
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    • 2021-07-17
    • 1970-01-01
    • 2018-07-03
    相关资源
    最近更新 更多