http://json.org/定义了JSON构建在两个结构上:
- 名称/值对的集合。在各种语言中,这是作为对象,记录,结构,字典,哈希表,键列表或关联阵列。
- 值的有序列表。在大多数语言中,这被认为是数组,向量,列表或序列。
我找不到在参数为[任何]的帖子请求上使alamofire工作的方法,这是我要消耗的端点所需的格式。
错误消息实际上有点欺骗,因为它在执行alamofire时说明了"'方法'呼叫中的额外参数"。request,但实际问题是参数值值不合格。
Alamofire
中的 parameters
名称的参数期望[String: Any]
。如果要通过Alamofire发送Array
,则可以像这样定义自定义参数编码
struct CustomEncoding: ParameterEncoding {
var _httpBody: Data?
func encode(_ urlRequest: Alamofire.URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
var request = try URLEncoding().encode(urlRequest, with: parameters)
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = _httpBody
return request
}
}
然后像这样使用
let body = ... // 'Array' converted to 'Data'
Alamofire.request(...,
method: ...,
parameters: [:],
encoding: CustomEncoding(_httpBody: body),
headers: ...)