다음을 통해 공유


브라우저 HTTP 클라이언트에서 기본적으로 사용하도록 설정된 스트리밍 HTTP 응답

이제 브라우저 HTTP 클라이언트는 기본적으로 스트리밍 HTTP 응답을 사용하도록 설정합니다. 따라서 이제 메서드는 동기 작업을 지원하지 않는 HttpContent.ReadAsStreamAsync 대신에 BrowserHttpReadStream를 반환합니다. 이를 위해서는 동기 스트림 작업에 의존하는 기존 코드에 대한 업데이트가 필요할 수 있습니다.

도입된 버전

.NET 10 미리 보기 3

이전 동작

WEBAssembly(WASM) 및 Blazor와 같은 브라우저 환경에서 HTTP 클라이언트는 기본적으로 전체 응답을 버퍼링했습니다. 명시적으로 HttpContent 옵션을 사용하여 스트리밍 응답을 선택하지 않으면, 개체는 MemoryStream에 포함된 WebAssemblyEnableStreamingResponse이 포함되어 있습니다.

var response = await httpClient.GetAsync("https://example.com");
var contentStream = await response.Content.ReadAsStreamAsync(); // Returns MemoryStream

새 동작

이제 스트리밍 HTTP 응답은 기본적으로 사용하도록 설정됩니다. HttpContent는 더 이상 MemoryStream를 포함하지 않습니다. 대신 HttpContent.ReadAsStreamAsync는 동기 작업을 지원하지 않는 BrowserHttpReadStream를 반환합니다.

var response = await httpClient.GetAsync("https://example.com");
var contentStream = await response.Content.ReadAsStreamAsync(); // Returns BrowserHttpReadStream

파괴적 변경 유형

이는 동작 변경.

변경 이유

이 변경은 스트리밍 GetFromJsonAsAsyncEnumerable과 관련된 사용 사례를 지원합니다.

애플리케이션이 동기 스트림 작업에 의존하는 경우 비동기 대안을 사용하도록 코드를 업데이트합니다. 전역적으로 또는 특정 요청에 대해 스트리밍을 사용하지 않도록 설정하려면 제공된 구성 옵션을 사용합니다.

개별 요청에 대해 스트리밍을 사용하지 않도록 설정하려면 다음을 사용합니다.

request.Options.Set(new HttpRequestOptionsKey<bool>("WebAssemblyEnableStreamingResponse"), false);
// or
request.SetBrowserResponseStreamingEnabled(false);

전역적으로 스트리밍을 사용하지 않도록 설정하려면 환경 변수 DOTNET_WASM_ENABLE_STREAMING_RESPONSE 를 설정하거나 프로젝트 파일에 다음을 추가합니다.

<WasmEnableStreamingResponse>false</WasmEnableStreamingResponse>

비고

.NET 10 미리 보기 3을 기준으로 <WasmEnableStreamingResponse> 속성을 아직 사용할 수 없습니다. 이후 릴리스에서 사용할 수 있습니다. 자세한 내용은 GitHub 문제를 참조하세요.

영향을 받는 API