RestSharp загружает весь файл в память при загрузке. Как этого избежать? - PullRequest
7 голосов
/ 24 января 2012

Я использую RestSharp в проекте Mono для загрузки некоторых файлов, и я заметил, что при загрузке большого файла память существенно увеличивается.

Глядя на Исходный код RestSharp Я заметил, что FileParameter ожидает массив байтов, что означает, что он действительно загружает файл в память.

Я что-то не так делаю? Есть ли способ для RestSharp не делать этого? Возможно, я загружаю действительно большие файлы, поэтому загружать их из памяти нельзя.

Любая помощь (включая указание использовать другую HTTP-библиотеку, доступную в режиме mono) приветствуется.

Ответы [ 2 ]

4 голосов
/ 25 января 2012

И я сдался после того, как нашел эту строку , поэтому тела запросов всегда загружаются в память, что, к сожалению, поэтому я создал простое решение для загрузки файлов на основе кода из этоговопрос и отладка библиотеки Apache HttpClient .

Если кому-то интересно, источник доступен здесь .

4 голосов
/ 24 января 2012

Используйте перегрузку AddFile(name, writer, filename).

Для параметра writer передайте Action<Stream>, который записывает непосредственно в поток тела запроса.Не закрывайте поток.

Вот пример записи в поток .

...