【问题标题】:How to access Alamofire request parameters inside response closure?如何在响应闭包中访问 Alamofire 请求参数?
【发布时间】: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 传递给响应闭包?还是以其他方式访问它?

【问题讨论】:

    标签: swift alamofire


    【解决方案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)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-09
      • 1970-01-01
      • 2012-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多