Alamofire4投掷"额外参数方法"使用方法时:.post

时间:2017-01-28 00:02:08

标签: swift swift3 alamofire

我已经从Swift2 / AF3过渡到Swift3 / AF4,这绝对是一场噩梦。 Xcode正在抛出额外的参数方法"错误,但这是错误的,这使我几乎不可能找到实际的错误。在我的代码周围的多个地方我有

Alamofire.request(url, method: .put, parameters: parameters,
 encoding: JSONEncoding.default, headers: headers).validate().responseJSON() { response in ... }

其中urlstringmethod是其中一个可用的枚举,parametersheaders[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甚至无法立即处理它们。这与它有什么关系吗?

1 个答案:

答案 0 :(得分:1)

“headers”参数类型是[String:String],而不是[String:Any]。你被错误的错误描述所困扰。