Я портирую загрузчик файлов на C # и хочу загрузить большие файлы на сайт.На веб-сайте есть API, который загружает файлы, полученные по запросу HTTP POST.
Однако, поскольку файлы будут достаточно большими, я не хочу хранить их содержимое в памяти.Поэтому я не могу отправить весь файл одним чанком.Я хочу, чтобы мой запрос отправлялся несколькими частями (т. Е. Инфраструктура .net должна вызывать send()
несколько раз).
Вот пример того, как я хочу, чтобы моя программа отправляла файл.Я загружаю файл с именем example.txt с содержанием «Это пример».Я перехватил кучу вызовов функции send()
и разместил буфер.http://pastie.org/2703455
В зарегистрированных запросах первый вызов send()
отправил первоначальный запрос HTTP POST.Второй звонок отправил границы и некоторые данные о файле.Третий звонок отправил содержимое файла.Четвертый вызов снова отправил границу (чтобы показать, что загрузка была завершена).
Так как бы мне повторить это поведение?