How add Int value to the Alamofire upload parameters
The NSKeyedArchiver
is very curious. Usually you'd just send string representation, e.g.:
Alamofire.upload(.POST, URL, headers: headers, multipartFormData: { multipartFormData in //add some jpg image //add other values: for (key, value) in parameters { if value is String { multipartFormData.appendBodyPart(data: value.dataUsingEncoding(NSUTF8StringEncoding)!, name: key) } else if value is Int { multipartFormData.appendBodyPart(data: "\(value)".dataUsingEncoding(NSUTF8StringEncoding)!, name: key) } }}, encodingCompletion: { encodingResult in //some processing})
Or, even simpler, because string interpolation works with both String
and Int
:
Alamofire.upload(.POST, URL, headers: headers, multipartFormData: { multipartFormData in //add some jpg image //add other values: for (key, value) in parameters { if value is String || value is Int { multipartFormData.appendBodyPart(data: "\(value)".dataUsingEncoding(NSUTF8StringEncoding)!, name: key) } }}, encodingCompletion: { encodingResult in //some processing})
Or, in Alamofire 4 with Swift 3:
Alamofire.upload(multipartFormData: { multipartFormData in //add some jpg image //add other values: for (key, value) in parameters { if value is String || value is Int { multipartFormData.append("\(value)".data(using: .utf8)!, withName: key) } }}, to: url, method: .post, headers: headers, encodingCompletion: { encodingResult in //some processing})