如何在响应闭包中访问 Alamofire 请求参数?
Posted
技术标签:
【中文标题】如何在响应闭包中访问 Alamofire 请求参数?【英文标题】:How to access Alamofire request parameters inside response closure? 【发布时间】:2015-10-23 17:06:57 【问题描述】:我正在做一个使用 Swift 2.0 和 Alamofire 3 的小项目。 我需要发送到服务器的参数很少。
var myParameters = [
"myObjectName":"FooBar",
"myObjectId":123456
]
要发送数据,我有一个用 Alamofire 编写的基本请求
let myRequest = Alamofire.request(.POST, MY_SERVICE_URL, parameters: myParameters as! [String : AnyObject], encoding: .JSON)
我收到这样的回复:
myRequest.response myRequest, myResponse, myData, myError in
/*
Here I would like to access myParameters, simply to double-check the ID of the data that I have sent out with myRequest.
*/
print("I'm Done with sending Object number \(myObjectId).")
是否有任何简单的方法可以将 myObjectId 传递给响应闭包?还是以其他方式访问它?
【问题讨论】:
【参考方案1】:您可以像这样检索参数:
let request = Alamofire.request(.POST, "", parameters: parameters, encoding: .JSON, headers: nil)
request.response (request, response, data, error) -> Void in
guard let httpBody = request?.HTTPBody else return
do
if let jsonParams = try NSJSONSerialization.JSONObjectWithData(httpBody, options: []) as? [String: AnyObject]
if let objectId = jsonParams["myObjectId"]
print(objectId)
catch
print(error)
【讨论】:
以上是关于如何在响应闭包中访问 Alamofire 请求参数?的主要内容,如果未能解决你的问题,请参考以下文章
如何显示来自 Alamofire 请求的 JSON 数组响应的某些部分
如何检查网络响应来自 Alamofire 请求中的缓存或服务器?
您如何访问 Alamofire 5 didCompleteTaskNotification 通知中的响应数据?
在 Swift 中使用 JSON 的 Alamofire 请求后,如何在 AnyObject 中转换 <AnyObject> 响应?