使用 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,则需要添加 encoding
的 JSONEncoding.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' 发送请求