在post方法中发送标头

时间:2017-10-04 13:20:58

标签: ios swift parameter-passing alamofire

我在iOS应用中使用Alamofire。我使用post方法和参数,一切顺利。现在我想发送一个令牌作为标题,但我收到一个错误的额外参数'方法'在电话中。 我搜索了在邮件请求中发送标题的方法,但只找到了我已经尝试过的方式。 我究竟做错了什么?我错过了什么吗? 这是我发送邮件请求的代码。

let urlCreate = "#########"
        Alamofire.request(urlCreate, method: .post, parameters: ["name" : adventureName, "lat" : lat, "long" : long], encoding: JSONEncoding.default, headers: ["jwtToken" : jwtToken]).responseJSON(completionHandler: { response in
            switch response.result {
            case .success:
                print(response)

            case .failure(let error):
                print(error)
                self.errorLabel.text = error as! String
            }

        })

我正在使用Swift 3,Xcode 8,Alamofire 4

我尝试的事情:

清理项目并重新构建。

删除参数encoding: JSONEncoding.default

初始化参数,例如let paramters = ["name" : adventureName, "lat" : lat, "long" : long] as [String : Any]

指定方法method: HTTPMethod.post方式,但仍然得到相同的错误。

2 个答案:

答案 0 :(得分:0)

let urlCreate = "#########"
let paramters = ["name" : adventureName, "lat" : lat, "long" : long] as [String : Any]
let headers = ["jwtToken" : jwtToken] as [String : String]

        Alamofire.request(urlCreate, method: .post, parameters: paramters, encoding: JSONEncoding.default, headers: headers).responseJSON(completionHandler: { response in
            switch response.result {
            case .success:
                print(response)

            case .failure(let error):
                print(error)
                self.errorLabel.text = error as! String
            }

        })

注意:JSONEncoding.default不是必需的,请尝试将其删除。

以下是类似的参考问题:Extra argument 'method' in call of Alamofire

以下是Alamofire开发人员对同一问题和解决方案的讨论:https://github.com/Alamofire/Alamofire/issues?utf8=%E2%9C%93&q=extra%20argument

答案 1 :(得分:0)

我解决了这个问题。 标题应该是这样的。

let urlCreate = ######
        let paramters = ["name" : adventureName, "lat" : lat, "long" : long] as [String : Any]
        let headers: HTTPHeaders = [
            "x-access-token": jwtToken!,
            "Accept": "application/json"
        ]

我从Alamofire的官方文档中得到了这个东西,它为我工作。