Swift 2 - POST 请求没有添加参数
Posted
技术标签:
【中文标题】Swift 2 - POST 请求没有添加参数【英文标题】:Swift 2 - POST requests don't get parameters added 【发布时间】:2015-08-28 21:41:48 【问题描述】:跟进有人在 Alamofire github 问题上提出的问题,该问题从未得到回答,因为我也想要答案。
用 GET 做一个简单的请求很好地添加了我的参数,但是做一个 POST 没有。
let parameters = ["foo": "bar"] Alamofire.request(.POST, "url", parameters: parameters) .responseJSON request, response, json, error in print("request: \(request)")
返回
request: Optional(<NSMutableURLRequest: 0x7f9864109cb0> URL: https://api.github.com/repos/BasThomas/junk/issues ) while let parameters = ["foo": "bar"] Alamofire.request(.GET, "url", parameters: parameters) .responseJSON request, response, json, error in print("request: \(request)")
返回
request: Optional(<NSMutableURLRequest: 0x7f9ef07ef0f0> URL: https://api.github.com/repos/BasThomas/junk/issues?foo=bar )
【问题讨论】:
【参考方案1】:POST 的参数被添加到请求正文,而不是 URL。这是由于 GET 和 POST 之间的通用约定。
自定义参数编码
如果您需要将它们附加到 URL(听起来像您这样做),那么我建议您查看 .Custom
ParameterEncoding 类型。这将允许您遵循与 encode 方法相同的逻辑,但可以随意附加参数。
此外,ParameterEncoding
枚举中的方法现已全部公开,因此您可以访问查询参数拆分和转义。
【讨论】:
以上是关于Swift 2 - POST 请求没有添加参数的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 swift 2.0 制作 http post json 请求参数
iOS Swift moya框架发送数组作为请求参数(GET/POST)
带有 Swift 3 的 Alamofire 4.3,POST 请求不适用于 URL 参数