我已经查看了之前的大量答案,但无法找到包含以下所有参数的最新答案:网址,方法,参数,编码,标题。
此:
Alamofire.request(url, method: .post, parameters: params, encoding: JSONEncoding.default, headers: headers).responseJSON { ... }
给出错误:额外参数"方法"在电话中
更新26/06/2017
请求的格式实际上是正确的,问题是发送的一个参数的格式不正确。该错误非常具有误导性。请参阅下面的答案,了解所需参数类型及其默认值的列表。
答案 0 :(得分:2)
Cristallo的回答是一种很好的定制方式。
与此同时,我发现原始问题中的请求确实有效,条件是传递给参数头的值的类型为[String:String]。
Alamofire的错误有点误导:
Extra argument 'method' in call.
因此,这是可以使用的请求:
Alamofire.request(
url,
method: .post,
parameters: params,
encoding: JSONEncoding.default,
headers: httpHeaders).responseJSON { response in
...
}
使用期望的参数类型及其默认值(取自Alamofire源代码):
Alamofire.request(
_ url: URLConvertible,
method: HTTPMethod = .get,
parameters: Parameters? = nil,
encoding: ParameterEncoding = URLEncoding.default,
headers: HTTPHeaders? = nil)
答案 1 :(得分:1)
最简单的方法是创建一个特定的请求,然后使用Request方法和属性
对其进行自定义var request = URLRequest(url: yourUrl)
request.httpMethod = yourMethod
request.setValue(yourCustomizedValue)
request.httpBody = yourBody
...
Alamofire.request(request).responseJSON {...}