How add Int value to the Alamofire upload parameters How add Int value to the Alamofire upload parameters json json

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})