Alamofire是否支持JSON构成为有序的值列表?参数为[字符串:任何],仅符合名称/值对的集合



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: ...)

相关内容

最新更新