HttpClient Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona una clase para enviar solicitudes HTTP y recibir respuestas HTTP de un recurso identificado por 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
- Herencia
Ejemplos
// 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
{
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
let! 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
Dim 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)
Catch e As HttpRequestException
Console.WriteLine(Environment.NewLine & "Exception Caught!")
Console.WriteLine("Message :{0} ", e.Message)
End Try
End Function
En el ejemplo de código anterior se usa un async Task Main() punto de entrada. Esa característica requiere C# 7.1 o posterior.
Comentarios
La HttpClient instancia de clase actúa como una sesión para enviar solicitudes HTTP. Una HttpClient instancia es una colección de configuraciones aplicadas a todas las solicitudes ejecutadas por esa instancia. Además, cada HttpClient instancia usa su propio grupo de conexiones, aislando sus solicitudes de las solicitudes ejecutadas por otras HttpClient instancias.
Instanciación
HttpClient está pensado para crear instancias una vez y reutilizarse durante toda la vida útil de una aplicación. En .NET Core y .NET 5 y versiones posteriores, httpClient agrupa las conexiones dentro de la instancia del controlador y reutiliza una conexión entre varias solicitudes. Si crea una instancia de una clase HttpClient para cada solicitud, se agotará el número de sockets disponibles en cargas pesadas. Este agotamiento producirá SocketException errores.
Puede configurar opciones adicionales pasando un "controlador", como HttpClientHandler (o SocketsHttpHandler en .NET Core 2.1 o posterior), como parte del constructor. Las propiedades de conexión del controlador no se pueden cambiar una vez enviada una solicitud, por lo que un motivo para crear una nueva instancia httpClient sería si necesita cambiar las propiedades de conexión. Si las distintas solicitudes requieren una configuración diferente, esto también puede provocar que una aplicación tenga varias HttpClient instancias, donde cada instancia esté configurada correctamente y, a continuación, se emita solicitudes en el cliente correspondiente.
HttpClient solo resuelve las entradas DNS cuando se crea una conexión. No realiza un seguimiento de las duraciones de vida (TTL) especificadas por el servidor DNS. Si las entradas DNS cambian con regularidad, lo que puede ocurrir en algunos escenarios de contenedor, el cliente no respetará esas actualizaciones. Para resolver este problema, puede limitar la duración de la conexión estableciendo la SocketsHttpHandler.PooledConnectionLifetime propiedad , de modo que la búsqueda de DNS sea necesaria cuando se reemplace la conexión.
public class GoodController : ApiController
{
private static readonly HttpClient httpClient;
static GoodController()
{
var socketsHandler = new SocketsHttpHandler
{
PooledConnectionLifetime = TimeSpan.FromMinutes(2)
};
httpClient = new HttpClient(socketsHandler);
}
}
Como alternativa a crear solo una instancia de HttpClient, también puede usar IHttpClientFactory para administrar las instancias httpClient. Para obtener más información, vea Directrices para usar HttpClient.
Derivación
HttpClient también actúa como una clase base para clientes HTTP más específicos. Un ejemplo sería un FacebookHttpClient que proporciona métodos adicionales específicos de un servicio web de Facebook (por ejemplo, un GetFriends método). Las clases derivadas no deben invalidar los métodos virtuales de la clase . En su lugar, use una sobrecarga de constructor que acepte HttpMessageHandler para configurar cualquier procesamiento previo o posterior a la solicitud.
Transportes
HttpClient es una API de alto nivel que ajusta la funcionalidad de nivel inferior disponible en cada plataforma donde se ejecuta.
En cada plataforma, HttpClient intenta usar el mejor transporte disponible:
| Host o tiempo de ejecución | Back-end |
|---|---|
| Windows/.NET Framework | HttpWebRequest |
| Windows/Mono | HttpWebRequest |
| Windows/UWP | Windows nativo WinHttpHandler (compatible con HTTP 2.0) |
| Windows/.NET Core 1.0-2.0 | Windows nativo WinHttpHandler (compatible con HTTP 2.0) |
| Android/Xamarin | Seleccionado en tiempo de compilación. Puede usar HttpWebRequest o configurarse para usar el nativo de AndroidHttpURLConnection |
| iOS, tvOS, watchOS/Xamarin | Seleccionado en tiempo de compilación. Puede usar HttpWebRequest o configurarse para usar NSUrlSession apple (compatible con HTTP 2.0) |
| macOS/Xamarin | Seleccionado en tiempo de compilación. Puede usar HttpWebRequest o configurarse para usar NSUrlSession apple (compatible con HTTP 2.0) |
| macOS/Mono | HttpWebRequest |
| macOS/.NET Core 1.0-2.0 | libcurlTransporte HTTP basado en (compatible con HTTP 2.0) |
| Linux/Mono | HttpWebRequest |
| Linux/.NET Core 1.0-2.0 | libcurlTransporte HTTP basado en (compatible con HTTP 2.0) |
| .NET Core 2.1 y versiones posteriores | System.Net.Http.SocketsHttpHandler |
Los usuarios también pueden configurar un transporte específico para HttpClient mediante la invocación del HttpClient constructor que toma un HttpMessageHandler.
.NET Framework & Mono
De forma predeterminada, en .NET Framework y Mono, HttpWebRequest se usa para enviar solicitudes al servidor. Este comportamiento se puede modificar especificando un controlador diferente en una de las sobrecargas del constructor con un HttpMessageHandler parámetro . Si necesita características como la autenticación o el almacenamiento en caché, puede usar WebRequestHandler para configurar las opciones y la instancia se puede pasar al constructor. El controlador devuelto se puede pasar a una sobrecarga de constructor que tiene un HttpMessageHandler parámetro.
.NET Core
A partir de .NET Core 2.1, la System.Net.Http.SocketsHttpHandler clase en lugar de HttpClientHandler proporciona la implementación que usan las clases de red HTTP de nivel superior, como HttpClient. El uso de SocketsHttpHandler ofrece una serie de ventajas:
- Una mejora significativa del rendimiento en comparación con la implementación anterior.
- La eliminación de dependencias de plataforma, lo que simplifica la implementación y el mantenimiento. Por ejemplo,
libcurlya no es una dependencia de .NET Core para macOS y .NET Core para Linux. - Comportamiento coherente en todas las plataformas de .NET.
Si este cambio no es deseable, en Windows puede seguir usando WinHttpHandler haciendo referencia a su paquete de NuGet y pasandolo manualmente al constructor de HttpClient.
Configuración del comportamiento mediante opciones de configuración en tiempo de ejecución
Algunos aspectos del comportamiento de se pueden personalizar a través de las opciones de HttpClientconfiguración en tiempo de ejecución. Sin embargo, el comportamiento de estos modificadores difiere a través de las versiones de .NET. Por ejemplo, en .NET Core 2.1 - 3.1, puede configurar si SocketsHttpHandler se usa de forma predeterminada, pero esa opción ya no está disponible a partir de .NET 5.0.
Agrupación de conexiones
HttpClient agrupa conexiones HTTP siempre que sea posible y las usa para más de una solicitud. Esto puede tener una ventaja significativa de rendimiento, especialmente para las solicitudes HTTPS, ya que el protocolo de enlace de conexión solo se realiza una vez.
Las propiedades del grupo de conexiones se pueden configurar en o HttpClientHandler SocketsHttpHandler pasar durante la construcción, como MaxConnectionsPerServer, PooledConnectionIdleTimeouty PooledConnectionLifetime.
La eliminación de la instancia de HttpClient cierra las conexiones abiertas y cancela las solicitudes pendientes.
Nota
Si envía simultáneamente solicitudes HTTP/1.1 al mismo servidor, se pueden crear nuevas conexiones. Incluso si reutiliza la HttpClient instancia, si la tasa de solicitudes es alta o si hay limitaciones de firewall, que pueden agotar los sockets disponibles debido a temporizadores de limpieza TCP predeterminados. Para limitar el número de conexiones simultáneas, puede establecer la MaxConnectionsPerServer propiedad . De forma predeterminada, el número de conexiones HTTP/1.1 simultáneas es ilimitada.
Almacenamiento en búfer y duración de solicitudes
De forma predeterminada, los métodos HttpClient (excepto GetStreamAsync) almacena en búfer las respuestas del servidor, leyendo todo el cuerpo de la respuesta en la memoria antes de devolver el resultado asincrónico. Esas solicitudes continuarán hasta que se produzca una de las siguientes acciones:
- se Task<TResult> realiza correctamente y devuelve un resultado.
- Timeout Se alcanza, en cuyo caso se cancelará.Task<TResult>
- Se desencadena la CancellationToken sobrecarga de método que se puede pasar a algunas sobrecargas de método.
- Se llama a CancelPendingRequests().
- HttpClient se elimina.
Puede cambiar el comportamiento de almacenamiento en búfer por solicitud mediante el HttpCompletionOption parámetro disponible en algunas sobrecargas de método. Este argumento se puede usar para especificar si Task<TResult> se debe considerar completado después de leer solo los encabezados de respuesta, o después de leer y almacenar en búfer el contenido de la respuesta.
Si la aplicación que usa HttpClient y clases relacionadas en el System.Net.Http espacio de nombres pretende descargar grandes cantidades de datos (50 megabytes o más), la aplicación debe transmitir esas descargas y no usar el almacenamiento en búfer predeterminado. Si usa el almacenamiento en búfer predeterminado, el uso de memoria del cliente obtendrá un rendimiento muy grande, lo que podría reducir considerablemente el rendimiento.
Seguridad para subprocesos
Los métodos siguientes son seguros para subprocesos:
- CancelPendingRequests
- DeleteAsync
- GetAsync
- GetByteArrayAsync
- GetStreamAsync
- GetStringAsync
- PostAsync
- PutAsync
- SendAsync
Servidores proxy
De forma predeterminada, HttpClient lee la configuración del proxy de las variables de entorno o la configuración del usuario o del sistema, en función de la plataforma. Puede cambiar este comportamiento pasando un WebProxy o IWebProxy a, en orden de prioridad:
- La Proxy propiedad de un HttpClientHandler pasado durante la construcción de HttpClient
- La DefaultProxy propiedad estática (afecta a todas las instancias)
Puede deshabilitar el proxy mediante UseProxy. La configuración predeterminada para Windows usuarios es intentar detectar un proxy mediante la detección de red, lo que puede ser lento. En el caso de las aplicaciones de alto rendimiento en las que se sabe que no se requiere un proxy, debe deshabilitar el proxy.
Tiempos de espera
Puede usar Timeout para establecer un tiempo de espera predeterminado para todas las solicitudes HTTP de la instancia httpClient. El tiempo de espera solo se aplica a los métodos xxxAsync que hacen que se inicie una solicitud o respuesta. Si se alcanza el tiempo de espera, se cancela para Task<TResult> esa solicitud.
Puede establecer algunos tiempos de espera adicionales si pasa una SocketsHttpHandler instancia al construir el objeto HttpClient:
| Propiedad | Descripción |
|---|---|
| ConnectTimeout | Especifica un tiempo de espera que se usa cuando una solicitud requiere que se cree una nueva conexión TCP. Si se produce el tiempo de espera, se cancela la solicitud Task<TResult> . |
| PooledConnectionLifetime | Especifica un tiempo de espera que se usará para cada conexión del grupo de conexiones. Si la conexión está inactiva, la conexión se cierra inmediatamente; de lo contrario, la conexión se cierra al final de la solicitud actual. |
| PooledConnectionIdleTimeout | Si una conexión del grupo de conexiones está inactiva durante este tiempo, se cierra la conexión. |
| Expect100ContinueTimeout | Si la solicitud tiene un encabezado "Expect: 100-continue", retrasa el envío de contenido hasta el tiempo de espera o hasta que se recibe una respuesta "100-continue". |
HttpClient solo resuelve las entradas DNS cuando se crean las conexiones. No realiza un seguimiento de las duraciones de período de vida (TTL) especificadas por el servidor DNS. Si las entradas DNS cambian periódicamente, lo que puede ocurrir en algunos escenarios de contenedor, puede usar para PooledConnectionLifetime limitar la duración de la conexión para que la búsqueda de DNS sea necesaria al reemplazar la conexión.
Constructores
| HttpClient() |
Inicializa una nueva instancia de la clase HttpClient mediante un controlador HttpClientHandler que se elimina cuando se elimina esta instancia. |
| HttpClient(HttpMessageHandler) |
Inicializa una nueva instancia de la clase HttpClient con el controlador especificado. El controlador se elimina cuando se elimina esta instancia. |
| HttpClient(HttpMessageHandler, Boolean) |
Inicializa una nueva instancia de la clase HttpClient con el controlador proporcionado y especifica si se debe eliminar ese controlador cuando se elimine esta instancia. |
Propiedades
| BaseAddress |
Obtiene o establece la dirección base de Identificador uniforme de recursos (URI) del recurso de Internet utilizado cuando se envían solicitudes. |
| DefaultProxy |
Obtiene o establece el proxy HTTP global. |
| DefaultRequestHeaders |
Obtiene los encabezados que se deben enviar con cada solicitud. |
| DefaultRequestVersion |
Obtiene o establece la versión HTTP predeterminada utilizada en las solicitudes posteriores realizadas por esta instancia de HttpClient. |
| DefaultVersionPolicy |
Obtiene o establece la directiva de versión predeterminada para solicitudes creadas implícitamente en métodos de conveniencia, por ejemplo, GetAsync(String) y PostAsync(String, HttpContent). |
| MaxResponseContentBufferSize |
Obtiene o establece el número máximo de bytes que se van a almacenar en búfer al leer el contenido de la respuesta. |
| Timeout |
Obtiene o establece el tiempo de espera hasta que se agota el tiempo de espera de la solicitud. |
Métodos
| CancelPendingRequests() |
Cancela todas las solicitudes pendientes en esta instancia. |
| DeleteAsync(String) |
Envía una solicitud DELETE al URI especificado como una operación asincrónica. |
| DeleteAsync(String, CancellationToken) |
Envía una solicitud DELETE al URI especificado con un token de cancelación como operación asincrónica. |
| DeleteAsync(Uri) |
Envía una solicitud DELETE al URI especificado como una operación asincrónica. |
| DeleteAsync(Uri, CancellationToken) |
Envía una solicitud DELETE al URI especificado con un token de cancelación como operación asincrónica. |
| Dispose() |
Libera los recursos no administrados y desecha los recursos administrados que usa HttpMessageInvoker. (Heredado de HttpMessageInvoker) |
| Dispose(Boolean) |
Libera los recursos no administrados que usa el objeto HttpClient y, de forma opcional, desecha los recursos administrados. |
| Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
| GetAsync(String) |
Envía una solicitud GET al URI especificado como una operación asincrónica. |
| GetAsync(String, CancellationToken) |
Envía una solicitud GET al URI especificado con un token de cancelación como operación asincrónica. |
| GetAsync(String, HttpCompletionOption) |
Envía una solicitud GET al URI especificado con una opción de finalización de HTTP como operación asincrónica. |
| GetAsync(String, HttpCompletionOption, CancellationToken) |
Envía una solicitud GET al URI especificado con una opción de finalización de HTTP y un token de cancelación como operación asincrónica. |
| GetAsync(Uri) |
Envía una solicitud GET al URI especificado como una operación asincrónica. |
| GetAsync(Uri, CancellationToken) |
Envía una solicitud GET al URI especificado con un token de cancelación como operación asincrónica. |
| GetAsync(Uri, HttpCompletionOption) |
Envía una solicitud GET al URI especificado con una opción de finalización de HTTP como operación asincrónica. |
| GetAsync(Uri, HttpCompletionOption, CancellationToken) |
Envía una solicitud GET al URI especificado con una opción de finalización de HTTP y un token de cancelación como operación asincrónica. |
| GetByteArrayAsync(String) |
Envía una solicitud GET al URI especificado y devuelve el cuerpo de la respuesta como una matriz de bytes en una operación asincrónica. |
| GetByteArrayAsync(String, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el cuerpo de la respuesta como una matriz de bytes en una operación asincrónica. |
| GetByteArrayAsync(Uri) |
Envía una solicitud GET al URI especificado y devuelve el cuerpo de la respuesta como una matriz de bytes en una operación asincrónica. |
| GetByteArrayAsync(Uri, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el cuerpo de la respuesta como una matriz de bytes en una operación asincrónica. |
| GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
| GetStreamAsync(String) |
Envía una solicitud GET al URI especificado y devuelve el cuerpo de la respuesta como una secuencia en una operación asincrónica. |
| GetStreamAsync(String, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el cuerpo de la respuesta como una secuencia en una operación asincrónica. |
| GetStreamAsync(Uri) |
Envía una solicitud GET al URI especificado y devuelve el cuerpo de la respuesta como una secuencia en una operación asincrónica. |
| GetStreamAsync(Uri, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el cuerpo de la respuesta como una secuencia en una operación asincrónica. |
| GetStringAsync(String) |
Envía una solicitud GET al URI especificado y devuelve el cuerpo de la respuesta como una cadena en una operación asincrónica. |
| GetStringAsync(String, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el cuerpo de la respuesta como una cadena en una operación asincrónica. |
| GetStringAsync(Uri) |
Envía una solicitud GET al URI especificado y devuelve el cuerpo de la respuesta como una cadena en una operación asincrónica. |
| GetStringAsync(Uri, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el cuerpo de la respuesta como una cadena en una operación asincrónica. |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
| PatchAsync(String, HttpContent) |
Envía una solicitud PATCH a un URI designado como una cadena como una operación asincrónica. |
| PatchAsync(String, HttpContent, CancellationToken) |
Envía una solicitud PATCH con un token de cancelación a un URI representado como una cadena como una operación asincrónica. |
| PatchAsync(Uri, HttpContent) |
Envía una solicitud PATCH como una operación asincrónica. |
| PatchAsync(Uri, HttpContent, CancellationToken) |
Envía una solicitud PATCH con un token de cancelación como una operación asincrónica. |
| PostAsync(String, HttpContent) |
Envía una solicitud POST al URI especificado como una operación asincrónica. |
| PostAsync(String, HttpContent, CancellationToken) |
Envía una solicitud POST con un token de cancelación como una operación asincrónica. |
| PostAsync(Uri, HttpContent) |
Envía una solicitud POST al URI especificado como una operación asincrónica. |
| PostAsync(Uri, HttpContent, CancellationToken) |
Envía una solicitud POST con un token de cancelación como una operación asincrónica. |
| PutAsync(String, HttpContent) |
Envía una solicitud PUT al URI especificado como una operación asincrónica. |
| PutAsync(String, HttpContent, CancellationToken) |
Envía una solicitud PUT con un token de cancelación como una operación asincrónica. |
| PutAsync(Uri, HttpContent) |
Envía una solicitud PUT al URI especificado como una operación asincrónica. |
| PutAsync(Uri, HttpContent, CancellationToken) |
Envía una solicitud PUT con un token de cancelación como una operación asincrónica. |
| Send(HttpRequestMessage) |
Envía una solicitud HTTP con la solicitud especificada. |
| Send(HttpRequestMessage, CancellationToken) |
Envía una solicitud HTTP con el token de cancelación y la solicitud especificados. |
| Send(HttpRequestMessage, CancellationToken) |
Envía una solicitud HTTP con el token de cancelación y la solicitud especificados. (Heredado de HttpMessageInvoker) |
| Send(HttpRequestMessage, HttpCompletionOption) |
Envía una solicitud HTTP. |
| Send(HttpRequestMessage, HttpCompletionOption, CancellationToken) |
Envía una solicitud HTTP con la solicitud, la opción de finalización y el token de cancelación especificados. |
| SendAsync(HttpRequestMessage) |
Envía una solicitud HTTP como una operación asincrónica. |
| SendAsync(HttpRequestMessage, CancellationToken) |
Envía una solicitud HTTP como una operación asincrónica. |
| SendAsync(HttpRequestMessage, HttpCompletionOption) |
Envía una solicitud HTTP como una operación asincrónica. |
| SendAsync(HttpRequestMessage, HttpCompletionOption, CancellationToken) |
Envía una solicitud HTTP como una operación asincrónica. |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Métodos de extensión
| DeleteFromJsonAsync(HttpClient, String, Type, JsonSerializerOptions, CancellationToken) | |
| DeleteFromJsonAsync(HttpClient, String, Type, JsonSerializerContext, CancellationToken) | |
| DeleteFromJsonAsync(HttpClient, String, Type, CancellationToken) | |
| DeleteFromJsonAsync(HttpClient, Uri, Type, JsonSerializerOptions, CancellationToken) | |
| DeleteFromJsonAsync(HttpClient, Uri, Type, JsonSerializerContext, CancellationToken) | |
| DeleteFromJsonAsync(HttpClient, Uri, Type, CancellationToken) | |
| DeleteFromJsonAsync<TValue>(HttpClient, String, JsonSerializerOptions, CancellationToken) | |
| DeleteFromJsonAsync<TValue>(HttpClient, String, JsonTypeInfo<TValue>, CancellationToken) | |
| DeleteFromJsonAsync<TValue>(HttpClient, String, CancellationToken) | |
| DeleteFromJsonAsync<TValue>(HttpClient, Uri, JsonSerializerOptions, CancellationToken) | |
| DeleteFromJsonAsync<TValue>(HttpClient, Uri, JsonTypeInfo<TValue>, CancellationToken) | |
| DeleteFromJsonAsync<TValue>(HttpClient, Uri, CancellationToken) | |
| GetFromJsonAsync(HttpClient, String, Type, JsonSerializerOptions, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el valor resultante de la deserialización del cuerpo de la respuesta como JSON en una operación asincrónica. |
| GetFromJsonAsync(HttpClient, String, Type, JsonSerializerContext, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el valor resultante de la deserialización del cuerpo de la respuesta como JSON en una operación asincrónica. |
| GetFromJsonAsync(HttpClient, String, Type, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el valor resultante de la deserialización del cuerpo de la respuesta como JSON en una operación asincrónica. |
| GetFromJsonAsync(HttpClient, Uri, Type, JsonSerializerOptions, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el valor resultante de la deserialización del cuerpo de la respuesta como JSON en una operación asincrónica. |
| GetFromJsonAsync(HttpClient, Uri, Type, JsonSerializerContext, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el valor resultante de la deserialización del cuerpo de la respuesta como JSON en una operación asincrónica. |
| GetFromJsonAsync(HttpClient, Uri, Type, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el valor resultante de la deserialización del cuerpo de la respuesta como JSON en una operación asincrónica. |
| GetFromJsonAsync<TValue>(HttpClient, String, JsonSerializerOptions, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el valor resultante de la deserialización del cuerpo de la respuesta como JSON en una operación asincrónica. |
| GetFromJsonAsync<TValue>(HttpClient, String, JsonTypeInfo<TValue>, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el valor resultante de la deserialización del cuerpo de la respuesta como JSON en una operación asincrónica. |
| GetFromJsonAsync<TValue>(HttpClient, String, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el valor resultante de la deserialización del cuerpo de la respuesta como JSON en una operación asincrónica. |
| GetFromJsonAsync<TValue>(HttpClient, Uri, JsonSerializerOptions, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el valor resultante de la deserialización del cuerpo de la respuesta como JSON en una operación asincrónica. |
| GetFromJsonAsync<TValue>(HttpClient, Uri, JsonTypeInfo<TValue>, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el valor resultante de la deserialización del cuerpo de la respuesta como JSON en una operación asincrónica. |
| GetFromJsonAsync<TValue>(HttpClient, Uri, CancellationToken) |
Envía una solicitud GET al URI especificado y devuelve el valor resultante de la deserialización del cuerpo de la respuesta como JSON en una operación asincrónica. |
| PatchAsJsonAsync<TValue>(HttpClient, String, TValue, JsonSerializerOptions, CancellationToken) |
Envía una solicitud PATCH al URI especificado que contiene el |
| PatchAsJsonAsync<TValue>(HttpClient, String, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Envía una solicitud PATCH al URI especificado que contiene el |
| PatchAsJsonAsync<TValue>(HttpClient, String, TValue, CancellationToken) |
Envía una solicitud PATCH al URI especificado que contiene el |
| PatchAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonSerializerOptions, CancellationToken) |
Envía una solicitud PATCH al URI especificado que contiene el |
| PatchAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Envía una solicitud PATCH al URI especificado que contiene el |
| PatchAsJsonAsync<TValue>(HttpClient, Uri, TValue, CancellationToken) |
Envía una solicitud PATCH al URI especificado que contiene el |
| PostAsJsonAsync<TValue>(HttpClient, String, TValue, JsonSerializerOptions, CancellationToken) |
Envía una solicitud POST al URI especificado que contiene el |
| PostAsJsonAsync<TValue>(HttpClient, String, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Envía una solicitud POST al URI especificado que contiene el |
| PostAsJsonAsync<TValue>(HttpClient, String, TValue, CancellationToken) |
Envía una solicitud POST al URI especificado que contiene el |
| PostAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonSerializerOptions, CancellationToken) |
Envía una solicitud POST al URI especificado que contiene el |
| PostAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Envía una solicitud POST al URI especificado que contiene el |
| PostAsJsonAsync<TValue>(HttpClient, Uri, TValue, CancellationToken) |
Envía una solicitud POST al URI especificado que contiene el |
| PutAsJsonAsync<TValue>(HttpClient, String, TValue, JsonSerializerOptions, CancellationToken) |
Envía una solicitud PUT al URI especificado que contiene el |
| PutAsJsonAsync<TValue>(HttpClient, String, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Envía una solicitud PUT al URI especificado que contiene el |
| PutAsJsonAsync<TValue>(HttpClient, String, TValue, CancellationToken) |
Envía una solicitud PUT al URI especificado que contiene el |
| PutAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonSerializerOptions, CancellationToken) |
Envía una solicitud PUT al URI especificado que contiene el |
| PutAsJsonAsync<TValue>(HttpClient, Uri, TValue, JsonTypeInfo<TValue>, CancellationToken) |
Envía una solicitud PUT al URI especificado que contiene el |
| PutAsJsonAsync<TValue>(HttpClient, Uri, TValue, CancellationToken) |
Envía una solicitud PUT al URI especificado que contiene el |