Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Tarayıcı HTTP istemcileri artık akış HTTP yanıtlarını varsayılan olarak etkinleştirir. Sonuç olarak, HttpContent.ReadAsStreamAsync yöntemi artık zaman uyumlu işlemleri desteklemeyen bir BrowserHttpReadStream yerine MemoryStream döndürür. Bunun için zaman uyumlu akış işlemlerini kullanan mevcut kod güncelleştirmeleri gerekebilir.
Sürüm kullanıma sunulmuştur
.NET 10
Önceki davranış
Daha önce, WebAssembly (WASM) ve Blazor gibi tarayıcı ortamlarında HTTP istemcisi varsayılan olarak yanıtın tamamını arabelleğe alır.
HttpContent nesnesi, MemoryStream içeriyordu, ancak WebAssemblyEnableStreamingResponse seçeneğini kullanarak akış yanıtlarını açıkça kabul etmediğiniz sürece.
var response = await httpClient.GetAsync("https://example.com");
var contentStream = await response.Content.ReadAsStreamAsync(); // Returns MemoryStream
Yeni davranış
.NET 10'dan başlayarak akış HTTP yanıtları varsayılan olarak etkinleştirilir. artık HttpContent bir MemoryStreamiçermez. Bunun yerine, HttpContent.ReadAsStreamAsync zaman uyumlu işlemleri desteklemeyen bir BrowserHttpReadStreamdöndürür.
var response = await httpClient.GetAsync("https://example.com");
var contentStream = await response.Content.ReadAsStreamAsync(); // Returns BrowserHttpReadStream
Kesinti yaratan değişiklik türü
Bu, bir davranış değişikliğidir.
Değişiklik nedeni
Bu değişiklik, akışla ilgili GetFromJsonAsAsyncEnumerable kullanım örneklerini destekler.
Önerilen eylem
Uygulamanız zaman uyumlu akış işlemlerini kullanıyorsa, kodu zaman uyumsuz alternatifleri kullanacak şekilde güncelleştirin. Genel olarak veya belirli isteklerde akışı devre dışı bırakmak için sağlanan yapılandırma seçeneklerini kullanın.
Tek tek istekler için akışı devre dışı bırakmak için aşağıdakileri kullanın:
request.Options.Set(new HttpRequestOptionsKey<bool>("WebAssemblyEnableStreamingResponse"), false);
// or
request.SetBrowserResponseStreamingEnabled(false);
Akışı genel olarak devre dışı bırakmak için ortam değişkenini DOTNET_WASM_ENABLE_STREAMING_RESPONSE ayarlayın veya proje dosyanıza aşağıdakileri ekleyin:
<WasmEnableStreamingResponse>false</WasmEnableStreamingResponse>
Uyarı
.NET 10 Preview 3 sürümünden itibaren <WasmEnableStreamingResponse> özellik henüz kullanılamıyor. Gelecek bir sürümde kullanıma sunulacaktır. Diğer ayrıntılar için GitHub sorununa bakın.