I have to send request having fields such as
id:1
Issue is that when I check apache logs I see that field is in form of
id:"1"
That is rather than having Integer 1 , I am getting String "1". Here is my code
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()
}
Before request is initiated , i have made sure that all required fields are in Integer. Other fields are string , hence I am using Dictionary of Type [String:Any]
What am I doing wrong? I need to make sure that integer fields remain integer.
Setting encoding to
JSONEncoding.default
worked perfectly for me.
The request can also be like
Alamofire.request(url, method: .post, parameters: object, encoding: JSONEncoding.default)
And works great with other types of methods too!