我已经从Swift2 / AF3过渡到Swift3 / AF4,这绝对是一场噩梦。 Xcode正在抛出额外的参数方法"错误,但这是错误的,这使我几乎不可能找到实际的错误。在我的代码周围的多个地方我有
Alamofire.request(url, method: .put, parameters: parameters,
encoding: JSONEncoding.default, headers: headers).validate().responseJSON() { response in ... }
其中url
为string
,method
是其中一个可用的枚举,parameters
和headers
为[String: Any]
。但是当我将方法更改为.post时,我得到了"额外的参数"错误。我不能为我的生活弄清楚这有什么问题。我尝试使用.validate()
和没有。
let url = "myStringHere"
let params = ["myString": myString] as [String: Any]
let headers = ["Authorization": myString, "AnotherString": stringValue] as [String: Any]
Alamofire.request(url, method: .post, parameters: params,
encoding: JSONEncoding.default, headers: headers).responseJSON(completionHandler: { response in ... }
为了便于阅读,我添加了换行符。 validate()
将介于request()
和responseJSON
之间,就像我对.put
方法所做的那样,我已经更新到新语法而没有遇到此问题。我在这里完全失败了。
编辑:只是想通过进入.post请求()和选项+点击变量来检查其类型来确保类型。唯一不使用选项+点击的是method: .post
。我已经检查了其他答案,但没有一个是有效的,大多数只是来自encoding: .json
的问题 - > encoding: JSONEncoding.default
但您可以清楚地看到我拥有的内容。
edit2 :尝试将encoding
切换为URLEncoding.httpBody
,但这也没有奏效。我从Alamofire那里得到了一百万个错误,我的Xcode甚至无法立即处理它们。这与它有什么关系吗?
答案 0 :(得分:1)
“headers”参数类型是[String:String],而不是[String:Any]。你被错误的错误描述所困扰。