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
Gestire il colore CSS con HWB
Modificare i metadati nell'head dell'HTML di una Blazor Web App
Creare una libreria CSS universale: Clip-path
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Creare una libreria CSS universale: i bottoni
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Proteggere le risorse Azure con private link e private endpoints
Creare una libreria CSS universale: Nav menu
Usare lo spread operator con i collection initializer in C#