Httpclient.SendAsync загружает StreamContent в память перед отправкой на сервер - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь выполнить большую загрузку видео на сервер, но независимо от того, что я делаю, если я использую Httpclient.SendAsync (HttpResponseMessage), чтобы отправить содержимое, назначенное HttpResponseMessage, среди всех заголовкови так, весь контент будет загружен в память.

Но я использую HttpClient.PostAsync (uri, HttpResponseMessage.Content), он будет выполнять загрузку в обычном режиме, без загрузки контента в поток.

Есть ли обходной путь, а не просто переключиться на PostAsync? Он не предлагает мне возможностей, предлагаемых SendAsync, поэтому я бы предпочел этого не делать.

Пример:

{
    var multiForm = new MultipartFormDataContent(UploadId);
    var fileStream = File.OpenRead(videoPath);
    var streamContent = new StreamContent(fileStream);
    multiForm.Add(streamContent, "video", Path.GetFileName(fs.Name));

    var request = GetHttpReqeustMessage[Method.Post, uri];
    request.Content = multiForm;

    var result = client.SendAsync(request);
}

1 Ответ

0 голосов
/ 16 октября 2019

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

...