MultipartMemoryStreamProvider & ByteArrayContent привели к IOException: «Неожиданный конец многочастного потока MIME. Многочастное сообщение MIME не завершено». - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь использовать MultipartMemoryStreamProvider для обработки многочастных запросов, где я получаю входные данные извне в виде серии байтов. Я пытаюсь вызвать ReadAsMultipartAsync для байтового содержимого со стандартным MultipartMemoryStreamProvider, однако это последовательно приводит к следующему исключению:

"IOException: неожиданный конец многочастного потока MIME. Многочастное сообщение MIME не завершено."

Я также могу воспроизвести проблему, просто создав текстовый файл со следующим содержимым (каждая строка имеет символ новой строки):

тест
123
0f30828a-e488-41c6-81da-da1c2f03d455
12
1
0f30828a-e488-41c6-81da-da1c2f03d455

Если сейчас запустить следующий код:

string contentType = "multipart/form-data;boundary=\"0f30828a-e488-41c6-81da-da1c2f03d455\"";
byte[] payload = File.ReadAllBytes(@"C:\test.txt");
ByteArrayContent content = new ByteArrayContent(payload);
content.Headers.Add("Content-Type", contentType);
MultipartMemoryStreamProvider provider = content.ReadAsMultipartAsync(new MultipartMemoryStreamProvider()).Result;

Фрагмент кода в сочетании с текстовым файлом с содержимым, показанным выше, последовательно приводил к тому же исключению IOException. Более того, вы получите точно такую ​​же ошибку, если удалите границы в текстовом файле. Я чувствую, что здесь делаю концептуальную ошибку, однако я не могу точно определить, в чем именно заключается проблема.

...