HttpClient Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce una classe per l'invio di richieste HTTP e la ricezione di risposte HTTP da una risorsa identificata da un URI.
public ref class HttpClient : System::Net::Http::HttpMessageInvoker
public class HttpClient : System.Net.Http.HttpMessageInvoker
type HttpClient = class
inherit HttpMessageInvoker
Public Class HttpClient
Inherits HttpMessageInvoker
- Ereditarietà
Esempio
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
static readonly HttpClient client = new HttpClient();
static async Task Main()
{
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
{
using HttpResponseMessage response = await client.GetAsync("http://www.contoso.com/");
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
// Above three lines can be replaced with new helper method below
// string responseBody = await client.GetStringAsync(uri);
Console.WriteLine(responseBody);
}
catch (HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ", e.Message);
}
}
open System.Net.Http
// HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
let client = new HttpClient()
let main =
task {
// Call asynchronous network methods in a try/catch block to handle exceptions.
try
use! response = client.GetAsync "http://www.contoso.com/"
response.EnsureSuccessStatusCode() |> ignore
let! responseBody = response.Content.ReadAsStringAsync()
// Above three lines can be replaced with new helper method below
// let! responseBody = client.GetStringAsync uri
printfn $"{responseBody}"
with
| :? HttpRequestException as e ->
printfn "\nException Caught!"
printfn $"Message :{e.Message} "
}
main.Wait()
' HttpClient is intended to be instantiated once per application, rather than per-use. See Remarks.
Shared ReadOnly client As HttpClient = New HttpClient()
Private Shared Async Function Main() As Task
' Call asynchronous network methods in a try/catch block to handle exceptions.
Try
Using response As HttpResponseMessage = Await client.GetAsync("http://www.contoso.com/")
response.EnsureSuccessStatusCode()
Dim responseBody As String = Await response.Content.ReadAsStringAsync()
' Above three lines can be replaced with new helper method below
' Dim responseBody As String = Await client.GetStringAsync(uri)
Console.WriteLine(responseBody)
End Using
Catch e As HttpRequestException
Console.WriteLine(Environment.NewLine & "Exception Caught!")
Console.WriteLine("Message :{0} ", e.Message)
End Try
End Function
L'esempio di codice precedente usa un async Task Main()
punto di ingresso. Questa funzionalità richiede C# 7.1 o versione successiva.
Commenti
L'istanza della HttpClient classe funge da sessione per inviare richieste HTTP. Un'istanza HttpClient è una raccolta di impostazioni applicate a tutte le richieste eseguite da tale istanza. Inoltre, ogni HttpClient istanza usa il proprio pool di connessioni, isolando le richieste dalle richieste eseguite da altre HttpClient istanze.
Instancing
HttpClient deve essere creata un'istanza una volta e riutilizzata durante tutta la vita di un'applicazione. In .NET Core e .NET 5+, le connessioni HttpClient all'interno dell'istanza del gestore e riutilizzano una connessione tra più richieste. Se si crea un'istanza di una classe HttpClient per ogni richiesta, il numero di socket disponibili in carichi pesanti verrà esaurito. Questo esaurimento comporterà SocketException errori.
È possibile configurare opzioni aggiuntive passando un "gestore", ad HttpClientHandler esempio (o SocketsHttpHandler in .NET Core 2.1 o versione successiva), come parte del costruttore. Le proprietà di connessione nel gestore non possono essere modificate dopo l'invio di una richiesta, quindi un motivo per creare una nuova istanza httpClient sarebbe se è necessario modificare le proprietà di connessione. Se richieste diverse richiedono impostazioni diverse, questo può causare anche un'applicazione con più HttpClient istanze, in cui ogni istanza è configurata in modo appropriato e quindi le richieste vengono rilasciate nel client pertinente.
HttpClient risolve solo le voci DNS quando viene creata una connessione. Non tiene traccia delle durate (TTL) specificate dal server DNS. Se le voci DNS cambiano regolarmente, che possono verificarsi in alcuni scenari di contenitore, il client non rispetta tali aggiornamenti. Per risolvere questo problema, è possibile limitare la durata della connessione impostando la SocketsHttpHandler.PooledConnectionLifetime proprietà, in modo che la ricerca DNS sia necessaria quando la connessione viene sostituita.
public class GoodController : ApiController
{
private static readonly HttpClient httpClient;
static GoodController()
{
var socketsHandler = new SocketsHttpHandler
{
PooledConnectionLifetime = TimeSpan.FromMinutes(2)
};
httpClient = new HttpClient(socketsHandler);
}
}
In alternativa alla creazione di un'unica istanza di HttpClient, è anche possibile usare IHttpClientFactory per gestire le istanze httpClient. Per altre informazioni, vedere Linee guida per l'uso di HttpClient.
Derivazione
L'oggetto HttpClient funge anche da classe di base per client HTTP più specifici. Un esempio è un FacebookHttpClient che fornisce metodi aggiuntivi specifici di un servizio Web Facebook, ad esempio un GetFriends
metodo. Le classi derivate non devono eseguire l'override dei metodi virtuali nella classe. Usare invece un overload del costruttore che accetta HttpMessageHandler per configurare qualsiasi elaborazione pre-richiesta o post-richiesta.
Trasporti
Si HttpClient tratta di un'API di alto livello che esegue il wrapping delle funzionalità di livello inferiore disponibili in ogni piattaforma in cui viene eseguita.
In ogni piattaforma, HttpClient tenta di usare il trasporto più disponibile:
Host/Runtime | Back-end |
---|---|
Windows/.NET Framework | HttpWebRequest |
Windows/Mono | HttpWebRequest |
Windows/UWP | Windows native WinHttpHandler (compatibile con HTTP 2.0) |
Windows/.NET Core 1.0-2.0 | Windows native WinHttpHandler (compatibile con HTTP 2.0) |
Android/Xamarin | Selezionato in fase di compilazione. Può essere usato o configurato per l'uso HttpWebRequest nativo di Android HttpURLConnection |
iOS, tvOS, watchOS/Xamarin | Selezionato in fase di compilazione. Può essere usato o configurato per l'uso HttpWebRequest di NSUrlSession Apple (con supporto HTTP 2.0) |
macOS/Xamarin | Selezionato in fase di compilazione. Può essere usato o configurato per l'uso HttpWebRequest di NSUrlSession Apple (con supporto HTTP 2.0) |
macOS/Mono | HttpWebRequest |
macOS/.NET Core 1.0-2.0 | libcurl Trasporto HTTP basato su HTTP (compatibile con HTTP 2.0) |
Linux/Mono | HttpWebRequest |
Linux/.NET Core 1.0-2.0 | libcurl Trasporto HTTP basato su HTTP (compatibile con HTTP 2.0) |
.NET Core 2.1 e versioni successive | System.Net.Http.SocketsHttpHandler |
Gli utenti possono anche configurare un trasporto specifico per HttpClient richiamando il HttpClient costruttore che accetta un HttpMessageHandleroggetto .
.NET Framework & Mono
Per impostazione predefinita, .NET Framework e Mono vengono HttpWebRequest usati per inviare richieste al server. Questo comportamento può essere modificato specificando un gestore diverso in uno degli overload del costruttore con un HttpMessageHandler parametro. Se sono necessarie funzionalità come l'autenticazione o la memorizzazione nella cache, è possibile usare WebRequestHandler per configurare le impostazioni e l'istanza può essere passata al costruttore. Il gestore restituito può essere passato a un overload del costruttore con un HttpMessageHandler parametro.
.NET Core
A partire da .NET Core 2.1, la System.Net.Http.SocketsHttpHandler classe anziché fornisce l'implementazione usata dalle classi di HttpClientHandler rete HTTP di livello superiore, ad esempio HttpClient. L'uso di SocketsHttpHandler offre numerosi vantaggi:
- Miglioramento significativo delle prestazioni rispetto all'implementazione precedente.
- Eliminazione delle dipendenze della piattaforma, che semplifica la distribuzione e la manutenzione. Ad esempio,
libcurl
non è più una dipendenza da .NET Core per macOS e .NET Core per Linux. - Comportamento coerente in tutte le piattaforme .NET.
Se questa modifica è indesiderata, in Windows è possibile continuare a usare WinHttpHandler facendo riferimento al pacchetto NuGet e passandola manualmente al costruttore di HttpClient .
Configurare il comportamento usando le opzioni di configurazione del runtime
Alcuni aspetti del comportamento sono personalizzabili tramite le opzioni di HttpClientconfigurazione di Runtime. Tuttavia, il comportamento di queste opzioni differisce dalle versioni di .NET. Ad esempio, in .NET Core 2.1 - 3.1 è possibile configurare se SocketsHttpHandler viene usato per impostazione predefinita, ma questa opzione non è più disponibile a partire da .NET 5.0.
Pool di connessioni
HttpClient pool di connessioni HTTP, dove possibile e li usa per più richieste. Ciò può avere un vantaggio significativo sulle prestazioni, soprattutto per le richieste HTTPS, perché la handshake di connessione viene eseguita una sola volta.
Le proprietà del pool di connessioni possono essere configurate in un HttpClientHandler oggetto o SocketsHttpHandler passate durante la costruzione, tra cui MaxConnectionsPerServer, PooledConnectionIdleTimeoute PooledConnectionLifetime.
La eliminazione dell'istanza di HttpClient chiude le connessioni aperte e annulla le richieste in sospeso.
Nota
Se si inviano simultaneamente richieste HTTP/1.1 allo stesso server, è possibile creare nuove connessioni. Anche se si riutilizza l'istanza HttpClient
, se la frequenza delle richieste è elevata o se sono presenti limitazioni del firewall, ciò può esaurire i socket disponibili a causa dei timer di pulizia TCP predefiniti. Per limitare il numero di connessioni simultanee, è possibile impostare la MaxConnectionsPerServer
proprietà. Per impostazione predefinita, il numero di connessioni HTTP/1.1 simultanee è illimitato.
Buffering e durata della richiesta
Per impostazione predefinita, i metodi HttpClient (ad eccezione GetStreamAsync) eseguono il buffer delle risposte dal server, leggendo tutto il corpo della risposta in memoria prima di restituire il risultato asincrono. Tali richieste continueranno fino a quando non si verifica uno dei seguenti:
- L'oggetto Task<TResult> ha esito positivo e restituisce un risultato.
- L'oggetto Timeout viene raggiunto, nel qual caso l'oggetto Task<TResult> verrà annullato.
- Viene attivato l'overload CancellationToken passable a alcuni metodi.
- Chiamata del metodo CancelPendingRequests().
- HttpClient viene eliminato.
È possibile modificare il comportamento di buffering in base alla richiesta usando il HttpCompletionOption parametro disponibile in alcuni overload del metodo. Questo argomento può essere usato per specificare se deve Task<TResult> essere considerato completo dopo aver letto solo le intestazioni di risposta o dopo la lettura e il buffering del contenuto della risposta.
Se l'app che usa HttpClient e classi correlate nello System.Net.Http spazio dei nomi intende scaricare grandi quantità di dati (50 megabyte o più), l'app deve trasmettere tali download e non usare il buffer predefinito. Se si usa il buffer predefinito, l'utilizzo della memoria client avrà dimensioni molto elevate, causando una riduzione significativa delle prestazioni.
Thread safety
I metodi seguenti sono thread safe:
- CancelPendingRequests
- DeleteAsync
- GetAsync
- GetByteArrayAsync
- GetStreamAsync
- GetStringAsync
- PostAsync
- PutAsync
- SendAsync
Proxy
Per impostazione predefinita, HttpClient legge la configurazione proxy dalle variabili di ambiente o dalle impostazioni utente/sistema, a seconda della piattaforma. È possibile modificare questo comportamento passando una WebProxy o IWebProxy verso, in ordine di precedenza:
- Proprietà Proxy in un httpClientHandler passato durante la costruzione di HttpClient
- La DefaultProxy proprietà statica (influisce su tutte le istanze)
È possibile disabilitare il proxy usando UseProxy. La configurazione predefinita per gli utenti di Windows consiste nel provare a rilevare un proxy usando l'individuazione di rete, che può essere lenta. Per applicazioni con velocità effettiva elevata in cui è noto che un proxy non è obbligatorio, è necessario disabilitare il proxy.
Le impostazioni proxy (come Credentials) devono essere modificate solo prima che venga effettuata la prima richiesta usando HttpClient. Le modifiche apportate dopo l'uso di HttpClient per la prima volta potrebbero non essere riflesse nelle richieste successive.
Timeout
È possibile usare Timeout per impostare un timeout predefinito per tutte le richieste HTTP dall'istanza di HttpClient. Il timeout si applica solo ai metodi xxxAsync che causano l'avvio di una richiesta/risposta. Se viene raggiunto il timeout, l'oggetto Task<TResult> per tale richiesta viene annullato.
È possibile impostare alcuni timeout aggiuntivi se si passa un'istanza SocketsHttpHandler quando si costruisce l'oggetto HttpClient:
Proprietà | Descrizione |
---|---|
ConnectTimeout | Specifica un timeout usato quando una richiesta richiede la creazione di una nuova connessione TCP. Se si verifica il timeout, la richiesta Task<TResult> viene annullata. |
PooledConnectionLifetime | Specifica un timeout da usare per ogni connessione nel pool di connessioni. Se la connessione è inattiva, la connessione viene chiusa immediatamente; in caso contrario, la connessione viene chiusa alla fine della richiesta corrente. |
PooledConnectionIdleTimeout | Se una connessione nel pool di connessioni è inattiva per questo periodo, la connessione viene chiusa. |
Expect100ContinueTimeout | Se la richiesta ha un'intestazione "Expect: 100-continue", ritarda l'invio del contenuto fino al timeout o fino a quando non viene ricevuta una risposta "100-continue". |
HttpClient risolve solo le voci DNS quando vengono create le connessioni. Non tiene traccia delle durate (TTL) specificate dal server DNS. Se le voci DNS cambiano regolarmente, che possono verificarsi in alcuni scenari di contenitore, è possibile usare per PooledConnectionLifetime limitare la durata della connessione in modo che sia necessaria la ricerca DNS durante la sostituzione della connessione.
Costruttori
HttpClient() |
Inizializza una nuova istanza della classe HttpClient con HttpClientHandler che viene eliminato quando viene eliminata l'istanza. |
HttpClient(HttpMessageHandler) |
Inizializza una nuova istanza della classe HttpClient con il gestore specificato. Il gestore viene eliminato quando viene eliminata l'istanza. |
HttpClient(HttpMessageHandler, Boolean) |
Inizializza una nuova istanza della classe HttpClient con il gestore specificato e stabilisce se il gestore deve essere eliminato quando viene eliminata l'istanza. |
Proprietà
BaseAddress |
Ottiene o imposta l'indirizzo di base dell'URI (Uniform Resource Identifier) della risorsa Internet usata quando si inviano le richieste. |
DefaultProxy |
Ottiene o imposta il proxy HTTP globale. |
DefaultRequestHeaders |
Ottiene le intestazioni che devono essere inviate con ogni richiesta. |
DefaultRequestVersion |
Ottiene o imposta la versione HTTP predefinita usata per le richieste successive effettuate da questa istanza di HttpClient. |
DefaultVersionPolicy |
Ottiene o imposta i criteri di versione predefiniti per le richieste create in modo implicito nei metodi pratici, ad esempio GetAsync(String) e PostAsync(String, HttpContent). |
MaxResponseContentBufferSize |
Ottiene o imposta il numero massimo di byte per la memorizzazione nel buffer durante la lettura del contenuto della risposta. |
Timeout |
Ottiene o imposta l'intervallo di tempo da attendere prima che si verifichi il timeout della richiesta. |
Metodi
CancelPendingRequests() |
Annullare tutte le richieste in sospeso in questa istanza. |
DeleteAsync(String) |
Inviare una richiesta DELETE all'URI specificato come operazione asincrona. |
DeleteAsync(String, CancellationToken) |
Inviare una richiesta DELETE all'URI specificato con un token di annullamento come operazione asincrona. |
DeleteAsync(Uri) |
Inviare una richiesta DELETE all'URI specificato come operazione asincrona. |
DeleteAsync(Uri, CancellationToken) |
Inviare una richiesta DELETE all'URI specificato con un token di annullamento come operazione asincrona. |
Dispose() |
Rilascia le risorse non gestite ed elimina le risorse gestite utilizzate dall'oggetto HttpMessageInvoker. (Ereditato da HttpMessageInvoker) |
Dispose(Boolean) |
Rilascia le risorse non gestite usate da HttpClient e, facoltativamente, elimina le risorse gestite. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetAsync(String) |
Inviare una richiesta GET all'URI specificato come operazione asincrona. |
GetAsync(String, CancellationToken) |
Inviare una richiesta GET all'URI specificato con un token di annullamento come operazione asincrona. |
GetAsync(String, HttpCompletionOption) |
Inviare una richiesta GET all'URI specificato con un'opzione di completamento HTTP come operazione asincrona. |
GetAsync(String, HttpCompletionOption, CancellationToken) |
Inviare una richiesta GET all'URI specificato con un'opzione di completamento HTTP e un token di annullamento come operazione asincrona. |
GetAsync(Uri) |
Inviare una richiesta GET all'URI specificato come operazione asincrona. |
GetAsync(Uri, CancellationToken) |
Inviare una richiesta GET all'URI specificato con un token di annullamento come operazione asincrona. |
GetAsync(Uri, HttpCompletionOption) |
Inviare una richiesta GET all'URI specificato con un'opzione di completamento HTTP come operazione asincrona. |
GetAsync(Uri, HttpCompletionOption, CancellationToken) |
Inviare una richiesta GET all'URI specificato con un'opzione di completamento HTTP e un token di annullamento come operazione asincrona. |
GetByteArrayAsync(String) |
Invia una richiesta GET all'URI specificato e restituisce il corpo della risposta come matrice di byte in un'operazione asincrona. |
GetByteArrayAsync(String, CancellationToken) |
Invia una richiesta GET all'URI specificato e restituisce il corpo della risposta come matrice di byte in un'operazione asincrona. |
GetByteArrayAsync(Uri) |
Inviare una richiesta GET all'URI specificato e restituire il corpo della risposta come matrice di byte in un'operazione asincrona. |
GetByteArrayAsync(Uri, CancellationToken) |
Inviare una richiesta GET all'URI specificato e restituire il corpo della risposta come matrice di byte in un'operazione asincrona. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetStreamAsync(String) |
Inviare una richiesta GET all'URI specificato e restituisce il corpo della risposta come flusso in un'operazione asincrona. |
GetStreamAsync(String, CancellationToken) |
Inviare una richiesta GET all'URI specificato e restituisce il corpo della risposta come flusso in un'operazione asincrona. |
GetStreamAsync(Uri) |
Inviare una richiesta GET all'URI specificato e restituisce il corpo della risposta come flusso in un'operazione asincrona. |
GetStreamAsync(Uri, CancellationToken) |
Inviare una richiesta GET all'URI specificato e restituisce il corpo della risposta come flusso in un'operazione asincrona. |
GetStringAsync(String) |
Inviare una richiesta GET all'URI specificato e restituisce il corpo della risposta come stringa in un'operazione asincrona. |
GetStringAsync(String, CancellationToken) |
Inviare una richiesta GET all'URI specificato e restituisce il corpo della risposta come stringa in un'operazione asincrona. |
GetStringAsync(Uri) |
Inviare una richiesta GET all'URI specificato e restituisce il corpo della risposta come stringa in un'operazione asincrona. |
GetStringAsync(Uri, CancellationToken) |
Inviare una richiesta GET all'URI specificato e restituisce il corpo della risposta come stringa in un'operazione asincrona. |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
PatchAsync(String, HttpContent) |
Invia una richiesta PATCH come operazione asincrona a un URI designato come stringa. |
PatchAsync(String, HttpContent, CancellationToken) |
Invia una richiesta PATCH con un token di annullamento come operazione asincrona a un URI rappresentato come stringa. |
PatchAsync(Uri, HttpContent) |
Invia una richiesta PATCH come operazione asincrona. |
PatchAsync(Uri, HttpContent, CancellationToken) |
Invia una richiesta PATCH con un token di annullamento come operazione asincrona. |
PostAsync(String, HttpContent) |
Inviare una richiesta POST all'URI specificato come operazione asincrona. |
PostAsync(String, HttpContent, CancellationToken) |
Inviare una richiesta POST con un token di annullamento come operazione asincrona. |
PostAsync(Uri, HttpContent) |
Inviare una richiesta POST all'URI specificato come operazione asincrona. |
PostAsync(Uri, HttpContent, CancellationToken) |
Inviare una richiesta POST con un token di annullamento come operazione asincrona. |
PutAsync(String, HttpContent) |
Inviare una richiesta PUT all'URI specificato come operazione asincrona. |
PutAsync(String, HttpContent, CancellationToken) |
Inviare una richiesta PUT con un token di annullamento come operazione asincrona. |
PutAsync(Uri, HttpContent) |
Inviare una richiesta PUT all'URI specificato come operazione asincrona. |
PutAsync(Uri, HttpContent, CancellationToken) |
Inviare una richiesta PUT con un token di annullamento come operazione asincrona. |
Send(HttpRequestMessage) |
Invia una richiesta HTTP con la richiesta specificata. |
Send(HttpRequestMessage, CancellationToken) |
Invia una richiesta HTTP con la richiesta e il token di annullamento specificati. |
Send(HttpRequestMessage, CancellationToken) |
Invia una richiesta HTTP con la richiesta e il token di annullamento specificati. (Ereditato da HttpMessageInvoker) |
Send(HttpRequestMessage, HttpCompletionOption) |
Invia una richiesta HTTP. |
Send(HttpRequestMessage, HttpCompletionOption, CancellationToken) |
Invia una richiesta HTTP con la richiesta, l'opzione di completamento e il token di annullamento specificati. |
SendAsync(HttpRequestMessage) |
Inviare una richiesta HTTP come operazione asincrona. |
SendAsync(HttpRequestMessage, CancellationToken) |
Inviare una richiesta HTTP come operazione asincrona. |
SendAsync(HttpRequestMessage, HttpCompletionOption) |
Inviare una richiesta HTTP come operazione asincrona. |
SendAsync(HttpRequestMessage, HttpCompletionOption, CancellationToken) |
Inviare una richiesta HTTP come operazione asincrona. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Metodi di estensione
DeleteFromJsonAsync(HttpClient, String, Type, JsonSerializerOptions, CancellationToken) |
Invia una richiesta DELETE all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
DeleteFromJsonAsync(HttpClient, String, Type, JsonSerializerContext, CancellationToken) |
Invia una richiesta DELETE all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
DeleteFromJsonAsync(HttpClient, String, Type, CancellationToken) |
Invia una richiesta DELETE all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
DeleteFromJsonAsync(HttpClient, Uri, Type, JsonSerializerOptions, CancellationToken) |
Invia una richiesta DELETE all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
DeleteFromJsonAsync(HttpClient, Uri, Type, JsonSerializerContext, CancellationToken) |
Invia una richiesta DELETE all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
DeleteFromJsonAsync(HttpClient, Uri, Type, CancellationToken) |
Invia una richiesta DELETE all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
DeleteFromJsonAsync<TValue>(HttpClient, String, JsonSerializerOptions, CancellationToken) |
Invia una richiesta DELETE all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
DeleteFromJsonAsync<TValue>(HttpClient, String, JsonTypeInfo<TValue>, CancellationToken) |
Invia una richiesta DELETE all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
DeleteFromJsonAsync<TValue>(HttpClient, String, CancellationToken) |
Invia una richiesta DELETE all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
DeleteFromJsonAsync<TValue>(HttpClient, Uri, JsonSerializerOptions, CancellationToken) |
Invia una richiesta DELETE all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
DeleteFromJsonAsync<TValue>(HttpClient, Uri, JsonTypeInfo<TValue>, CancellationToken) |
Invia una richiesta DELETE all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
DeleteFromJsonAsync<TValue>(HttpClient, Uri, CancellationToken) |
Invia una richiesta DELETE all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, String, JsonSerializerOptions, CancellationToken) |
Invia una |
GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, String, JsonTypeInfo<TValue>, CancellationToken) |
Invia una |
GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, String, CancellationToken) |
Invia una |
GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, Uri, JsonSerializerOptions, CancellationToken) |
Invia una |
GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, Uri, JsonTypeInfo<TValue>, CancellationToken) |
Invia una |
GetFromJsonAsAsyncEnumerable<TValue>(HttpClient, Uri, CancellationToken) |
Invia una |
GetFromJsonAsync(HttpClient, String, Type, JsonSerializerOptions, CancellationToken) |
Invia una richiesta GET all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
GetFromJsonAsync(HttpClient, String, Type, JsonSerializerContext, CancellationToken) |
Invia una richiesta GET all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
GetFromJsonAsync(HttpClient, String, Type, CancellationToken) |
Invia una richiesta GET all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
GetFromJsonAsync(HttpClient, Uri, Type, JsonSerializerOptions, CancellationToken) |
Invia una richiesta GET all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
GetFromJsonAsync(HttpClient, Uri, Type, JsonSerializerContext, CancellationToken) |
Invia una richiesta GET all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
GetFromJsonAsync(HttpClient, Uri, Type, CancellationToken) |
Invia una richiesta GET all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
GetFromJsonAsync<TValue>(HttpClient, String, JsonSerializerOptions, CancellationToken) |
Invia una richiesta GET all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
GetFromJsonAsync<TValue>(HttpClient, String, JsonTypeInfo<TValue>, CancellationToken) |
Invia una richiesta GET all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
GetFromJsonAsync<TValue>(HttpClient, String, CancellationToken) |
Invia una richiesta GET all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
GetFromJsonAsync<TValue>(HttpClient, Uri, JsonSerializerOptions, CancellationToken) |
Invia una richiesta GET all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
GetFromJsonAsync<TValue>(HttpClient, Uri, JsonTypeInfo<TValue>, CancellationToken) |
Invia una richiesta GET all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
GetFromJsonAsync<TValue>(HttpClient, Uri, CancellationToken) |
Invia una richiesta GET all'URI specificato e restituisce il valore risultante dalla deserializzazione del corpo della risposta come JSON in un'operazione asincrona. |
PatchAsJsonAsync<TValue>(HttpClient, String, TValue, JsonSerializerOptions, CancellationToken) |
Invia una richiesta PATCH all'URI specificato contenente il |
PatchAsJsonAsync<TValue>(HttpClient, String, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Invia una richiesta PATCH all'URI specificato contenente il |
PatchAsJsonAsync<TValue>(HttpClient, String, TValue, CancellationToken) |
Invia una richiesta PATCH all'URI specificato contenente il |
PatchAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonSerializerOptions, CancellationToken) |
Invia una richiesta PATCH all'URI specificato contenente il |
PatchAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Invia una richiesta PATCH all'URI specificato contenente il |
PatchAsJsonAsync<TValue>(HttpClient, Uri, TValue, CancellationToken) |
Invia una richiesta PATCH all'URI specificato contenente il |
PostAsJsonAsync<TValue>(HttpClient, String, TValue, JsonSerializerOptions, CancellationToken) |
Invia una richiesta POST all'URI specificato contenente |
PostAsJsonAsync<TValue>(HttpClient, String, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Invia una richiesta POST all'URI specificato contenente |
PostAsJsonAsync<TValue>(HttpClient, String, TValue, CancellationToken) |
Invia una richiesta POST all'URI specificato contenente |
PostAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonSerializerOptions, CancellationToken) |
Invia una richiesta POST all'URI specificato contenente |
PostAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Invia una richiesta POST all'URI specificato contenente |
PostAsJsonAsync<TValue>(HttpClient, Uri, TValue, CancellationToken) |
Invia una richiesta POST all'URI specificato contenente |
PutAsJsonAsync<TValue>(HttpClient, String, TValue, JsonSerializerOptions, CancellationToken) |
Invia una richiesta PUT all'URI specificato contenente |
PutAsJsonAsync<TValue>(HttpClient, String, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Invia una richiesta PUT all'URI specificato contenente |
PutAsJsonAsync<TValue>(HttpClient, String, TValue, CancellationToken) |
Invia una richiesta PUT all'URI specificato contenente |
PutAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonSerializerOptions, CancellationToken) |
Invia una richiesta PUT all'URI specificato contenente |
PutAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Invia una richiesta PUT all'URI specificato contenente |
PutAsJsonAsync<TValue>(HttpClient, Uri, TValue, CancellationToken) |
Invia una richiesta PUT all'URI specificato contenente |