因此,在使用AFNetworking
或使用Alamofire
进行任何其他API调用时,我从未遇到过此问题,但是我似乎遇到了问题,基本上我有一个Array of Dictionaries
应该格式化像这样;
[{"value":"1","created_at":"2018-06-26 01:57:14"},
{"value":"4","created_at":"2018-06-26 01:59:44"}]
但是它们是这样通过服务器端的;
[{"value":"4"},{"created_at":"2018-06-26 02:30:11"},
{"value":"4"},{"created_at":"2018-06-26 03:24:41"}]
我尝试创建硬编码参数以使其起作用,但没有成功,我在哪里做错了(我知道这可能是愚蠢的), 这是硬编码的演示参数;
let dictA = ["value":"2", "created_at":"2018-06-26 04:05:50"]
let dictB = ["value":"4", "created_at":"2018-06-26 05:05:50"]
let params : NSDictionary = ["values":[dictA,dictB]]
tia
//编辑
这是Alamofire
请求;
Alamofire.request(urlString, method: .post, parameters: params, encoding: URLEncoding.default, headers: headers).responseJSON(completionHandler: { response in
//Handle response
})
//编辑
我已经解决了这一问题,由于某种原因,当使用本地URLRequest
将对象序列化为主体时,对象会正确格式化,然后首先使用该请求初始化Alamofire
请求; >
var request = URLRequest(url: url)
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try! JSONSerialization.data(withJSONObject: params)
Alamofire.request(request).responseJSON(completionHandler: { response in
//Handle response
})
答案 0 :(得分:1)
尝试更改:
let params: Parameters = ["values": [dictA, dictB]]
或
let params: [String: Any] = ["values": [dictA, dictB]]