Я пытаюсь использовать 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. Более того, вы получите точно такую же ошибку, если удалите границы в текстовом файле. Я чувствую, что здесь делаю концептуальную ошибку, однако я не могу точно определить, в чем именно заключается проблема.