Почему мой фрагментарный запрос удаляет завершающий CRLF?
Я только что провел последние 10 часов, пытаясь выяснить, почему мой http-запрос не работал, когда я сделал
request.Content.ReadAsMultipartAsync().Result.Contents
Он продолжал возвращать ошибку:
Unexpected end of MIME multipart stream. MIME multipart message is not complete.
После многих часов исследований я, наконец, обнаружил, что в запросе нет конечного CRLF, который, по-видимому,.Net необходим для определения конца запроса. Когда я добавил свой собственный CRLF, все работало отлично.
В WireShark я посмотрел на один из запросов и увидел, что у фрагментированного запроса действительно есть конечный CRLF, а у запроса де-порции - нет.
Так что у меня остается 2 вопроса.
- Почему в моем запросе отсутствует конечный CRLF, и
- Есть ли способ добавить его обратно до того, как он попадет в.Net, чтобы.Net правильно его обработал?
1 ответ
'0' CRLF CRLF в конце является частью кодирования по частям и корректно удаляется Wireshark, когда выдает данные по частям. Мне кажется, проблема в том, что для кодирования MIME требуется свой собственный CRLF в дополнение к тем, которые добавляются в кодированном кодировании.
Трудно сказать, в чем именно заключается проблема, но мне кажется, что вы можете искать не в том месте.