Прочитав вопрос, я подозреваю, что вы тонко не понимаете, что делают задачи загрузки (и, к сожалению, документация Apple нуждается в серьезном улучшении в этой области, что не помогает).Эти задачи не загружают файл так же, как веб-браузер, если вы выбрали файл в форме загрузки.Вместо этого они используют файл в качестве тела запроса на загрузку.Я думаю, что они по умолчанию предоставляют вменяемый Content-Type на основе имени файла, хотя я не уверен, но они не отправляют данные в кодировке формы.
Итак, если яполностью понимая вопрос, вы можете выбрать следующие варианты:
- Продолжайте использовать многочастное кодирование.При желании запишите составное тело в файл, а не храните его в памяти, и используйте задачу загрузки, чтобы получить тело из этого файла, а не из объекта NSData.
- Загрузите файл, который вы пытаетесь отправить,в незашифрованном виде, как полнота тела выгрузки, и предоставьте любые дополнительные параметры, которые вам нужно предоставить в виде параметров GET в самом URL.
- Используйте некоторые другие кодировки, такие как JSON или буферы протокола.
В любом случае код сервера будет определять, какой из этих подходов поддерживается.Если вы можете изменить код сервера, то я бы порекомендовал второй подход.Он немного более эффективен, чем первый, гораздо эффективнее, чем JSON, и его легче реализовать, чем любой другой подход.