Swift NSMutableURLRequest анализирует составные данные ответа

Я некоторое время искал решение этой проблемы, но все, кажется, на противоположной стороне, на которой я.

Я пишу быстрый код для получения ответа multipart/form-data от Django REST API (также написанного мной). Ответ содержит объект JSON, а также один файл .png. Тело ответа выглядит так непосредственно перед отправкой из API в модуль swift:

--$AGORA_boundary$
Content-Disposition: form-data; name="json"

{"category": "Household", "post_id": "226"}
--$AGORA_boundary$
Content-Disposition: form-data; name="image"; filename="image_name"
Content-Type: image/png

.....image data.....
--$AGORA_boundary$--

Который, по стандартам HTTP, правильно отформатирован как ответ, состоящий из нескольких частей/форм-данных. Тип содержимого ответа:

multipart/form-data; boundary=$AGORA_boundary$

Модуль swift следует модели NSURLSession.dataTaskWithRequest.

var image1Task = session.dataTaskWithRequest(image1Request,completionHandler: {data, response, error -> Void in
    //completionhandler code here
    //how do I parse the response data to receive the JSON object
    // and the the image data?
}

Я понятия не имею, как анализировать составной объект данных, и каждая исследовательская попытка получить быстрый составной ответ дает результаты, когда люди пытаются ОТПРАВИТЬ составной ЗАПРОС; не та сторона, которую я пытаюсь решить.

Итак, как я могу разобрать входящие данные на две части: JSON и изображение?

Заранее спасибо за любую помощь!


person Freestyle076    schedule 18.03.2015    source источник
comment
Поскольку вы владеете сервером, можете ли вы отправить изображение в кодировке base64 с помощью JSON и исключить составной ответ?   -  person sbooth    schedule 19.03.2015
comment
Это то, чего мы пытаемся избежать. Кодирование изображения чрезвычайно неэффективно, мы надеемся, что составной ответ увеличит скорость.   -  person Freestyle076    schedule 19.03.2015
comment
В stackoverflow.com/questions/22095186/ это выглядит разумно.   -  person sbooth    schedule 19.03.2015
comment
@ Freestyle076 Меня также интересует неэффективность этого, поскольку я отправляю JSON в кодировке base64 вместо составного, чтобы упростить себе жизнь. Проводили ли вы какие-либо фактические сравнения размера данных с каждым процессом при включенном сжатии на вашем сервере? В основном я предполагал, что передача JSON с кодировкой gzip на самом деле не будет чрезвычайно неэффективной по сравнению с составной частью ... Или вас беспокоит не размер?   -  person Matt Gibson    schedule 19.03.2015