From 15f268052086a9a2617adb994b73cbbb52d550b4 Mon Sep 17 00:00:00 2001 From: campersau Date: Fri, 1 Sep 2023 21:14:11 +0200 Subject: [PATCH] Add SetBrowserRequestStreamingEnabled extension method --- ...WebAssemblyHttpRequestMessageExtensions.cs | 27 ++++++++++++++++--- .../WebAssembly/src/PublicAPI.Unshipped.txt | 1 + 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/Components/WebAssembly/WebAssembly/src/Http/WebAssemblyHttpRequestMessageExtensions.cs b/src/Components/WebAssembly/WebAssembly/src/Http/WebAssemblyHttpRequestMessageExtensions.cs index ef353f5395a0..de290bdba24a 100644 --- a/src/Components/WebAssembly/WebAssembly/src/Http/WebAssemblyHttpRequestMessageExtensions.cs +++ b/src/Components/WebAssembly/WebAssembly/src/Http/WebAssemblyHttpRequestMessageExtensions.cs @@ -11,6 +11,7 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Http; public static class WebAssemblyHttpRequestMessageExtensions { private static readonly HttpRequestOptionsKey> FetchRequestOptionsKey = new HttpRequestOptionsKey>("WebAssemblyFetchOptions"); + private static readonly HttpRequestOptionsKey WebAssemblyEnableStreamingRequestKey = new HttpRequestOptionsKey("WebAssemblyEnableStreamingRequest"); private static readonly HttpRequestOptionsKey WebAssemblyEnableStreamingResponseKey = new HttpRequestOptionsKey("WebAssemblyEnableStreamingResponse"); /// @@ -131,15 +132,35 @@ public static HttpRequestMessage SetBrowserRequestOption(this HttpRequestMessage return requestMessage; } + /// + /// Configures streaming request for the HTTP request. + /// + /// The . + /// if streaming is enabled; otherwise . + /// The . + /// + /// This API is only effective when the browser HTTP Fetch supports request streaming. + /// Requires HTTP/2 or higher server support. + /// See . + /// + public static HttpRequestMessage SetBrowserRequestStreamingEnabled(this HttpRequestMessage requestMessage, bool streamingEnabled) + { + ArgumentNullException.ThrowIfNull(requestMessage); + + requestMessage.Options.Set(WebAssemblyEnableStreamingRequestKey, streamingEnabled); + + return requestMessage; + } + /// /// Configures streaming response for the HTTP request. /// /// The . - /// if streaming is enabled; otherwise false. + /// if streaming is enabled; otherwise . /// The . /// - /// This API is only effective when the browser HTTP Fetch supports streaming. - /// See . + /// This API is only effective when the browser HTTP Fetch supports response streaming. + /// See . /// public static HttpRequestMessage SetBrowserResponseStreamingEnabled(this HttpRequestMessage requestMessage, bool streamingEnabled) { diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt index 7dc5c58110bf..f4df58b4d22d 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt @@ -1 +1,2 @@ #nullable enable +static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestStreamingEnabled(this System.Net.Http.HttpRequestMessage! requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage!