使用 Alamofire API Rest 发送空数组

Posted

技术标签:

【中文标题】使用 Alamofire API Rest 发送空数组【英文标题】:Send empty array with Alamofire API Rest 【发布时间】:2018-01-20 23:08:53 【问题描述】:

我想使用 patch 方法将一个空数组发送到 Rest Full API。但我不知道为什么它不起作用。事实上,我也在使用邮递员来测试我的请求,并且这个请求在邮递员中运行良好(我希望 wordTrads 为空):

这就是我使用 Alamofire 实现在 Swift 中调用的 API 的方式:

let parameters = [
     "wordTrads" : [],
]
Alamofire.request("\(Auth.URL_API)/lists/205",method: .patch, parameters : parameters).responseJSON  (response) in
   print("List patched")

但是如果 Alamofire 不发送空数组,它就不会像 swift 那样工作。

我正在使用 Alamofire 4.6.0 和 Swift 4。

【问题讨论】:

【参考方案1】:

您的屏幕快照表明您希望发送 JSON,但您的 Alamofire 语法没有这样做。如果要发送 JSON,则需要添加 encodingJSONEncoding.default

let parameters = [
     "wordTrads" : []
]

Alamofire.request("\(Auth.URL_API)/lists/205", method: .patch, parameters: parameters, encoding: JSONEncoding.default)
    .responseJSON  response in
        switch response.result 
        case .success(let value): print(value)
        case .failure(let error): print(error)
        

如果你这样做,请求的正文会包含 JSON 格式的空数组:

"wordTrads":[]

【讨论】:

以上是关于使用 Alamofire API Rest 发送空数组的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire - 带有自定义标头的 Rest API 调用

请求 REST POST API 在 Postman 中工作,但在 Alamofire 中不起作用

带有 CRUD/Rest 的 Alamofire POST 参数

Alamofire 向 API 'NSInvalidArgumentException' 发送请求

使用 Alamofire 向 API 发送多个类型参数 - Swift

如何使用 Alamofire SWIFT 在 post api 中发送 JSON