我必须发送具有诸如的字段的请求
id:1
问题是,当我检查apache日志时,我看到该字段的形式为
id:"1"
那不是拥有整数1,而是获得字符串“1”。这是我的代码
let parameters: Parameters = [
"viewModel":viewModel];
let headers: HTTPHeaders = [
"Authorization": "Bearer " + getToken(),
"Accept": "application/json"
]
Alamofire.request(setUrl(),method:.post,parameters:parameters,headers: headers).responseJSON{
response in
print("Response:\(String(describing:response.result.value))")
switch response.result {
case .success:
self.status = true;
if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) {
self.responseString = utf8Text
}
self.responseJSON = JSON(response.result.value as Any)
case .failure:
self.status = false;
}
completed()
}
在启动请求之前,我已确保所有必填字段都在Integer中。其他字段是字符串,因此我使用类型字典[String:Any]
我做错了什么?我需要确保整数字段保持整数。
将编码设置为
JSONEncoding.default
对我来说很完美。
请求也可以是
Alamofire.request(url, method: .post, parameters: object, encoding: JSONEncoding.default)
并且与其他类型的方法一起工作也很棒!
我知道这是一个迟到的回复,当然它会帮助别人。我也遇到了同样的问题,花了几个小时才搞清楚。
您需要在Alamofire请求中设置编码才能解决此问题。
encoding:JSONEncoding.default
所以请求就像
Alamofire.request(setUrl(),method:。post,parameters:parameters,encoding:JSONEncoding.default,headers:headers).responseJSON {response in