ios - Alamofire 参数未正确序列化
问题描述
AFNetworking
所以我在使用或使用任何其他 API 调用时从未遇到过这个问题,Alamofire
但是我似乎遇到了问题,基本上我有一个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]]
蒂亚
//编辑
这是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
})
解决方案
尝试改变:
let params: Parameters = ["values": [dictA, dictB]]
或者
let params: [String: Any] = ["values": [dictA, dictB]]