загрузка изображения в кратчайшие сроки с несколькими параметрами

Я пытаюсь загрузить изображение в бэкэнд-клиент, используя swift. Проблема в том, что я не могу получить правильное форматирование для httpbody. Я не хочу использовать многочастную форму для загрузки, так как я не знаю, как справиться с этим на сервере.

Вот код, который у меня есть ... он не работает, когда я просматриваю изображение в Интернете, он не отображается, и это всего лишь 70 КБ, который, я знаю, определенно не такой большой, как изображение.

var bodyString: String = "session_id=\(session_id)&location_id=\(location_id)"
bodyString = bodyString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
var body = NSMutableData.alloc()
body.appendData(bodyString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!)
if image != nil{
    var imageData = UIImageJPEGRepresentation(image,0.5)
    body = NSMutableData.alloc()
    //var imageDataString = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
    bodyString = "session_id=\(session_id)&location_id=\(location_id)&image_data="
    bodyString = bodyString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
    body.appendData(bodyString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!)
    var imageString = "&image_data=\(imageData)"
    body.appendData(imageData)
    }
req.HTTPBody = body

ОБНОВЛЕНИЕ: поэтому я решил пойти по пути base64, но он все еще не работает, я думаю, потому что я кодирую его как строку ntf8, это правильный способ сделать это?

var imageData = UIImageJPEGRepresentation(image,0.5)
var imageDataString = imageData.base64EncodedStringWithOptions(.allZeros)
body = NSMutableData.alloc()
bodyString = "session_id=\(session_id)&location_id=\(location_id)&tag_type=\(tag_type)&image_data=\(imageDataString)"
bodyString = bodyString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
body.appendData(bodyString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!)

и на бэкэнде я декодирую это как:

image_data_decoded = base64.b64decode(image_data)

Ответы на вопрос(1)

Ваш ответ на вопрос