我在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
方式,但仍然得到相同的错误。
答案 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的官方文档中得到了这个东西,它为我工作。