Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Klien HTTP browser sekarang mengaktifkan respons HTTP streaming secara default. Akibatnya, metode HttpContent.ReadAsStreamAsync sekarang mengembalikan BrowserHttpReadStream alih-alih MemoryStream, yang tidak mendukung operasi sinkron. Ini mungkin memerlukan pembaruan pada kode yang ada yang bergantung pada operasi aliran sinkron.
Versi yang diperkenalkan
.NET 10
Perilaku sebelumnya
Sebelumnya, di lingkungan browser seperti WebAssembly (WASM) dan Blazor, klien HTTP menyangga seluruh respons secara default. Objek HttpContent berisi MemoryStream kecuali Anda secara eksplisit memilih opsi WebAssemblyEnableStreamingResponse untuk streaming respons.
var response = await httpClient.GetAsync("https://example.com");
var contentStream = await response.Content.ReadAsStreamAsync(); // Returns MemoryStream
Perilaku baru
Mulai dari .NET 10, respons HTTP streaming diaktifkan secara default.
HttpContent tidak lagi berisi MemoryStream. Sebaliknya, HttpContent.ReadAsStreamAsync mengembalikan BrowserHttpReadStream, yang tidak mendukung operasi sinkron.
var response = await httpClient.GetAsync("https://example.com");
var contentStream = await response.Content.ReadAsStreamAsync(); // Returns BrowserHttpReadStream
Jenis perubahan yang memutus kompatibilitas
Ini adalah perubahan perilaku .
Alasan perubahan
Perubahan ini mendukung kasus penggunaan terkait dengan streaming GetFromJsonAsAsyncEnumerable.
Tindakan yang direkomendasikan
Jika aplikasi Anda bergantung pada operasi aliran sinkron, perbarui kode untuk menggunakan alternatif asinkron. Untuk menonaktifkan streaming secara global atau untuk permintaan tertentu, gunakan opsi konfigurasi yang disediakan.
Untuk menonaktifkan streaming untuk permintaan individual, gunakan hal berikut:
request.Options.Set(new HttpRequestOptionsKey<bool>("WebAssemblyEnableStreamingResponse"), false);
// or
request.SetBrowserResponseStreamingEnabled(false);
Untuk menonaktifkan streaming secara global, atur variabel DOTNET_WASM_ENABLE_STREAMING_RESPONSE lingkungan atau tambahkan yang berikut ini ke file proyek Anda:
<WasmEnableStreamingResponse>false</WasmEnableStreamingResponse>
Nota
Pada .NET 10 Pratinjau 3 <WasmEnableStreamingResponse> , properti belum tersedia. Ini akan tersedia dalam rilis mendatang. Untuk detail selengkapnya, lihat masalah GitHub.