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 il metodo nameof con un tipo generico in C# 14
Ospitare n8n su Azure App Service
Integrare un servizio esterno con .NET Aspire
Ricerca delle GitHub issue tramite operatori logici
Pubblicare un MCP Server in GitHub MCP Registry
Nuove validazioni Form Blazor
Gestire gli errori nelle Promise JavaScript con try()
Il nuovo persistent state in Blazor
Gestione delle issue type con GitHub
Ridurre il reflow ottimizzando il CSS
Escludere alcuni file da GitHub Copilot
Gestione dei codeowners in GitHub




