如何在 Alamofire 中为 GET 方法发送自定义参数?
Posted
技术标签:
【中文标题】如何在 Alamofire 中为 GET 方法发送自定义参数?【英文标题】:How to send custom parameters for a GET method in Alamofire? 【发布时间】:2017-09-08 09:38:54 【问题描述】:我有这个array = [1,2,3]
,我想这样发送:
http://somedomain.com/today?intersets=1,2,3
我正在尝试这样发送:
let params: Parameters = [ "intersets": array]
Alamofire.request(url, method: .get, parameters: params ,headers: header)
但是在打印response.request
之后,我得到了这个:
http://somedomain.com/today?intersets%5B%5D=1&intersets%5B%5D=2intersets%5B%5D=3
关于如何解决此请求的任何想法?
【问题讨论】:
请注意,if 您的服务器实际上需要一个数组并再次解析逗号,然后使用您当前的方法实际上更正确,因为这就是您通过 GET 传输数组的方式。 @luk2302 谢谢老兄,当然,你提到这是 GET 中的方式,那么它在 POST 中会改变吗? 在 POST 正文中,您主要发送对数组具有原生支持的 json,因此不需要任何字符串操作。我之前的意思是“在 URL 参数中”,这是在 GET 中放置参数的唯一位置。 【参考方案1】:您应该将数组加入String
并将其作为参数发送。
let string = array.joined(separator: ",")
let params: Parameters = [ "intersets": string]
【讨论】:
我收到了这个blahblahblah/today?intersets=1%2C2%2C3
,如何从,
中删除%2C 并将其替换为,
您不能直接发送,
作为参数,如在URL中,您应该编码特殊字符。 %2C
是,
的编码形式。以上是关于如何在 Alamofire 中为 GET 方法发送自定义参数?的主要内容,如果未能解决你的问题,请参考以下文章
如何在同一函数中为 2 个 Alamofire 请求只有 1 个完成处理程序
如何在 Swift 中使用 Alamofire 将参数作为正文发送到 PUT 方法