将 manager.request 与 POST 一起使用
Posted
技术标签:
【中文标题】将 manager.request 与 POST 一起使用【英文标题】:Using manager.request with POST 【发布时间】:2017-06-19 20:36:43 【问题描述】:我想通过 Alamofire SessionManager
发送 POST
请求。
我阅读了关于 https://github.com/Alamofire/Alamofire/blob/master/Documentation/Alamofire%204.0%20Migration%20Guide.md#parameter-encoding-protocol
但我没有看到使用请求和POST
的示例,只能上传。
它给出的例子:
let parameters: Parameters = ["foo": "bar"]
Alamofire.request(urlString, parameters: parameters) // Encoding => URLEncoding(destination: .methodDependent)
Alamofire.request(urlString, parameters: parameters, encoding: URLEncoding(destination: .queryString))
Alamofire.request(urlString, parameters: parameters, encoding: URLEncoding(destination: .httpBody))
// Static convenience properties (we'd like to encourage everyone to use this more concise form)
Alamofire.request(urlString, parameters: parameters, encoding: URLEncoding.default)
Alamofire.request(urlString, parameters: parameters, encoding: URLEncoding.queryString)
Alamofire.request(urlString, parameters: parameters, encoding: URLEncoding.httpBody)
我的代码是:
manager.request(url, method: .post, parameters: parameters, encoding: .url)
.responseJSON response in
fulfill(response)
符合方法签名(据我所知),但我收到错误“调用中的额外参数method:
。
【问题讨论】:
自己检查这个答案***.com/questions/44484772/…也许可以帮助你,让我知道 【参考方案1】:您需要将URLRequest
与正文中的参数一致为Data
这段代码可以帮助你
var request = URLRequest(url: urlString!)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try! JSONSerialization.data(withJSONObject: parameters)
manager.request(request)
.responseJSON response in
fulfill(response)
希望对你有帮助
【讨论】:
您好,这对我有用,我会接受。但是我在返回这个 Promise 时遇到了问题:***.com/questions/44640197/… @quantumpotato 我对 Promise 没有任何经验,但你可以查看这个 pod 或许可以帮助你 github.com/PromiseKit/Alamofire-以上是关于将 manager.request 与 POST 一起使用的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Spring Security @Pre 和 @Post 注释与集合一起使用
将 Wordpress Post 与 Cakephp3 集成