我试图弄清楚如何将Alamofire与JSONAPI数据源一起使用。我试图POST
一些数据。下面的代码不起作用。我正在学习HTTP请求和JSON,因此代码可能存在其他问题。真的很感激任何帮助。
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 :(得分: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)
答案 1 :(得分:0)
我建议您查看优秀的Spine库:https://github.com/wvteijlingen/Spine它提供了一个方便的Swift界面,可以与JSONAPI后端进行交互,并在您学习的过程中为您提供指导。