使用 Alamofire 请求方法在 POST 的请求正文中发送 JSON 对象数组
Posted
技术标签:
【中文标题】使用 Alamofire 请求方法在 POST 的请求正文中发送 JSON 对象数组【英文标题】:Send an array of JSON objects in the request body of a POST using the Alamofire request method 【发布时间】:2015-10-28 14:08:49 【问题描述】:我有一个 JSON 对象数组,我想将它们传递到我们服务器的 POST 请求的请求正文中。但是,请求方法的方法签名仅将字典作为其参数:
func request(method: Alamofire.Method, _ URLString: URLStringConvertible, parameters: [String : AnyObject]? = default, encoding: Alamofire.ParameterEncoding = default, headers: [String : String]? = default) -> Alamofire.Request
目前有没有办法在 Alamofire 中执行此操作而无需自己创建 NSURLRequest?还是在未来的发展计划中?
【问题讨论】:
【参考方案1】:您需要使用.Custom
参数编码来执行此操作,或者您自己手动创建NSURLRequest
。另一种可能的选择是修改服务器以接受 JSON 中带有参数名称的数组。
截至目前,尚无计划支持此功能,但感谢您让我们了解此限制。我已将此问题添加到我们的内部 Trello 看板,我们将讨论我们是否愿意在未来支持此问题。
【讨论】:
你能解释一下为什么没有计划支持这个功能吗?数组作为 JSON 请求的***元素是完全有效的。 明确地说,我们已将它添加到我们的积压工作中,所以这并不意味着它永远不会被支持。它在我们的优先级列表中并不是很高。主要原因是它不太适合其他编码类型。虽然它对 JSON 完全有效,但它不适用于属性列表,并且在查询字符串或 HTTP 正文中的 URL 编码中没有得到很好的定义。 是的,我现在明白了,在我自己使用 .Custom 编码实现它之后,我可以明白为什么它没有完成。谢谢。 @AndrewJackman 您能否提供示例代码?我正在努力解决,谢谢以上是关于使用 Alamofire 请求方法在 POST 的请求正文中发送 JSON 对象数组的主要内容,如果未能解决你的问题,请参考以下文章
在 Alamofire Post 请求之后如何有一个完成处理程序/块?
POST 请求在 swift3 中无法使用 alamofire