A partire dalla versione 3 di .NET Core, la classe HttpClient può utilizzare i protocollo HTTP/2. Per abilitare questa opzione abbiamo due possibilità: la prima consiste nell'abilitare l'opzione a livello di singola chiamata mentre la seconda consiste nell'ablitare l'opzione a livello di istanza così che tutte le chiamate effettuate dall'istanza usino HTTP/2.
Per abilitare HTTP/2 a livello di singola chiamata, dobbiamo impostare la proprietà Version di HttpRequestMessage come nel seguente script.
var client = new HttpClient() { BaseAddress = new Uri("https://myserver.com") }; using (var request = new HttpRequestMessage(HttpMethod.Get, "/api/customers") { Version = new Version(2, 0) }) using (var response = await client.SendAsync(request)) Console.WriteLine(response.Content);
Come si evince dall'esempio la proprietà Version è di tipo Version il quale accetta due parametri nel costruttore: il primo è la major version di Http mentre il secondo rappresenta la minor version.
Se vogliamo invece abilitare HTTP/2 a livello di istanza, dobbiamo impostare la proprietà DefaultRequestVersion di HttpClient.
var client = new HttpClient() { BaseAddress = new Uri("https://myserver.com"), DefaultRequestVersion = new Version(2, 0) }; using (var response = await client.GetAsync("/api/customers")) Console.WriteLine(response.Content);
Se non specifichiamo la versione HTTP, viene mantenuto il vecchio comportamento quindi viene usao HTTP/1.1. Inoltre, se anche impostiamo HTTP/2 come protocollo, se il server non supporta HTTP/2, verrà automaticamente usano HTTP/1.1 come fallback.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Usare un KeyedService di default in ASP.NET Core 8
Generare file PDF da Blazor WebAssembly con iText
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
.NET Conference Italia 2023
Utilizzare gli snapshot con Azure File shares
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Utilizzare Tailwind CSS all'interno di React: primi componenti
Gestire liste di tipi semplici con Entity Framework Core
Evitare la script injection nelle GitHub Actions
Eseguire query verso tipi non mappati in Entity Framework Core
Usare le variabili per personalizzare gli stili CSS
Eseguire le GitHub Actions offline