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
Configurare dependabot per aggiornare le dipendenze di terze parti con GitHub Actions
Usare le variabili per personalizzare gli stili CSS
Utilizzare Tailwind CSS all'interno di React: primi componenti
Usare le collection expression per inizializzare una lista di oggetti in C#
Utilizzare i primary constructor in C#
Controllare gli accessi IP alle app con Azure Container Apps
Aggiungere interattività lato server in Blazor 8
Utilizzare i primary constructor di C# per inizializzare le proprietà
Reactive form tipizzati con FormBuilder in Angular
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
Gestire undefined e partial nelle reactive forms di Angular
Usare lo spread operator con i collection initializer in C#