2015-10-23 66 views
1

我正在使用Swift 2.0和Alamofire 3編寫一個小項目。 我有幾個參數需要發送到服務器。如何在響應關閉中訪問Alamofire請求參數?

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迴應關閉?或者以其他方式訪問它?

回答

0

您可以檢索的參數是這樣的:

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