У нас на самом деле была такая же проблема при публикации кода iOS на Node.js.Нашим вопросом оказался CR-LF, предшествующий первой границе.Node.js использует компонент для разбора MIME, который очень требователен к формату, и предыдущие символы CR-LF рассматриваются как искаженные.Я не уверен, но CR-LF после вашей последней границы может вызвать ту же проблему.Ваша первая граница должна выглядеть следующим образом:
[body appendData:[[NSString stringWithFormat:@"--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
Ваша конечная граница должна выглядеть следующим образом:
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
Обратите внимание, что промежуточные границы должны включать CR-LF до и после границы:
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
Мое чтение спецификации указывает на то, что вы можете иметь данные до первой границы и после последней границы, но анализатор должен игнорировать эти области.Компонент Node.js, используемый для анализа, очень требователен.В компоненте синтаксического анализа есть патч, но он еще не попал в проект.