2016-01-24 37 views
0

我想弄清楚如何與JSONAPI數據源一起使用Alamofire。我正在嘗試POST一些數據。下面的代碼不起作用。我正在學習HTTP請求和JSON,因此代碼可能存在其他問題。非常感謝任何幫助。Alamofire和JSONAPI

 let parameters = [ 
     "data" : [ 
      "type" : "notes", 
      "attributes" : [ 
       "relevant-date" : date, 
       "details" : self.textField.text 
      ], 
      "relationships" : [ 
       "child" : [ 
        "data" : [ 
         "type" : "children", 
         "id" : self.passedChildID! 
        ] 
       ] 
      ] 
     ] 
    ] 

    Alamofire.request(.POST, "url", parameters: parameters, encoding: .JSON) 
    .responseJSON { (response) -> Void in 
     if let value = response.result.value { 
      let json = JSON(value) 
     } 
    } 

回答

0

這是用服務器端過濾器解決的,更新的代碼如下。

let parameters = [ 
     "auth_token" : "test", 
     "filter" : [ 
      "phone-number" : self.PhoneNumber! 
     ] 
    ] 
Alamofire.request(.GET, url, parameters: parameters, encoding: .URL) 
     .responseJSON { (response) -> Void in 
       print("Request \(response.request)") 
     } 

編輯

我真的從Alamofire Github的頁面代碼解決了這個問題。我不得不添加下面標識的2個單獨的標題。

let URL = NSURL(string: "https://httpbin.org/post")! 
let mutableURLRequest = NSMutableURLRequest(URL: URL) 
mutableURLRequest.HTTPMethod = "POST" 

let parameters = ["foo": "bar"] 

do {mutableURLRequest.HTTPBody = try  NSJSONSerialization.dataWithJSONObject(parameters, options: NSJSONWritingOptions()) 
    } catch { 
     // No-op 
} 

    mutableURLRequest.setValue("application/vnd.api+json", forHTTPHeaderField: "Content-Type") //one header 
    mutableURLRequest.setValue("application/vnd.api+json", forHTTPHeaderField: "Accept") //second header 

Alamofire.request(mutableURLRequest)