LANCommander/LANCommander.SDK/Extensions/HttpContentExtensions.cs
Pat Hartl c4217d7b41 Refactor HTTP streaming
Greatly reduces the amount of memory usage when streaming from the server by:
1. Shedding use of an internal MemoryStream
2. Using HttpCompletionOption.ResponseHeadersRead to start reading the stream without loading all of the HttpContent into memory
2025-10-09 02:16:20 -05:00

14 lines
No EOL
591 B
C#

using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
namespace LANCommander.SDK.Extensions;
internal static class HttpContentExtensions
{
internal static async Task<TrackableStream> ReadAsTrackableStreamAsync(this HttpContent content)
=> await content.ReadAsTrackableStreamAsync(CancellationToken.None);
internal static async Task<TrackableStream> ReadAsTrackableStreamAsync(this HttpContent content, CancellationToken ct)
=> new TrackableStream(await content.ReadAsStreamAsync(ct), content.Headers.ContentLength.GetValueOrDefault());
}