簡體   English   中英

如何在響應閉包內部訪問Alamofire請求參數?

[英]How to access Alamofire request parameters inside response closure?

我正在使用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傳遞給響應閉包? 還是以其他方式訪問它?

您可以像這樣檢索參數:

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)
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM