Utilizzare HTTP/2 con HttpClient in .NET Core

di Stefano Mostarda, in .NET,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi