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í.
Envía solicitudes HTTP y recibe respuestas HTTP de un recurso identificado por un URI. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient .
public ref class HttpClient sealed : IClosable, IStringable
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.Activatable(Windows.Web.Http.IHttpClientFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class HttpClient final : IClosable, IStringable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.Activatable(Windows.Web.Http.IHttpClientFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class HttpClient final : IClosable, IStringable
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Web.Http.IHttpClientFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class HttpClient : System.IDisposable, IStringable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Web.Http.IHttpClientFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class HttpClient : System.IDisposable, IStringable
function HttpClient(filter)
Public NotInheritable Class HttpClient
Implements IDisposable, IStringable
- Herencia
- Atributos
- Implementaciones
Requisitos de Windows
Familia de dispositivos |
Windows 10 (se introdujo en la versión 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)
|
Ejemplos
En el código de ejemplo siguiente se muestra cómo obtener contenido de un servidor web como una cadena.
using System;
var uri = new System.Uri("http://www.bing.com");
using (var httpClient = new Windows.Web.Http.HttpClient())
{
// Always catch network exceptions for async methods
try
{
string result = await httpClient.GetStringAsync(uri);
}
catch (Exception ex)
{
// Details in ex.Message and ex.HResult.
}
}
// Having exited the scope of the using statement, httpClient.Dispose() will be called
// automatically, thus freeing up system resources (the underlying socket, and memory
// used for the object).
#include "winrt/Windows.Foundation.h"
#include "winrt/Windows.Web.Http.h"
using namespace winrt;
Windows::Foundation::IAsyncAction HttpClientExample()
{
Windows::Foundation::Uri uri{ L"http://www.bing.com" };
Windows::Web::Http::HttpClient httpClient{};
// Always catch network exceptions for async methods
try
{
auto response{ co_await httpClient.GetStringAsync(uri) };
}
catch (winrt::hresult_error const& ex)
{
// Details in ex.message() and ex.to_abi().
}
// The destructor of HttpClient frees system resources
// (the underlying socket, and memory used for the object).
}
using namespace Windows::Foundation;
using namespace Windows::Web::Http;
uri = ref new Uri("http://example.com/datalist.aspx");
httpClient = ref new HttpClient();
// Always catch network exceptions for async methods
try
{
httpClient->GetStringAsync(uri);
}
catch
{
// Details in ex.Message and ex.HResult.
}
// In C++/CX, the system resources used by httpClient object are released
// when the object falls out of scope or by the destructor (delete operator).
La clase HttpClient suele usarse en una aplicación para descargar y, a continuación, analizar texto. Es posible que la codificación de caracteres especificada en el encabezado Content-Type por un servidor HTTP no coincida con la codificación de caracteres del cuerpo de la respuesta HTTP (la codificación XML en un documento XML, por ejemplo). Una manera de usar HttpClient con texto es llamar al método GetStringAsync y pasar la cadena devuelta al analizador de texto. Sin embargo, esto puede provocar errores si content-Type no es un tipo que se puede expresar como una cadena. Una manera confiable de usar HttpClient con un analizador XML es llamar al método GetBufferAsync y analizar el búfer para el elemento "<?xml>". A continuación, use la codificación de caracteres especificada ("<xmlversion="1.0" codificación="UTF-8"?>", por ejemplo) para analizar el cuerpo de la respuesta HTTP. Para otros formatos de texto, se pueden usar métodos similares en los que la aplicación examina la parte inicial del cuerpo de la respuesta HTTP para determinar la codificación de caracteres usada.
Comentarios
La instancia de clase HttpClient actúa como una sesión para enviar solicitudes HTTP y recibir respuestas. Una instancia de HttpClient es una colección de configuraciones que se aplican a todas las solicitudes ejecutadas por esa instancia. Además, cada instancia de HttpClient usa su propio grupo de conexiones, aislando sus solicitudes de las solicitudes ejecutadas por otras instancias de HttpClient.
HttpClient también actúa como una clase para usarla con filtros para clientes HTTP más específicos. Un ejemplo sería un HttpClientFilter que proporciona métodos adicionales específicos de un servicio de red social (un método GetFriends, por ejemplo).
Si una aplicación que usa HttpClient y clases relacionadas en el espacio de nombres Windows.Web.Http descarga 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 se usa el almacenamiento en búfer predeterminado, el uso de memoria del cliente obtendrá un rendimiento muy grande, lo que podría provocar una reducción del rendimiento.
Para obtener código de ejemplo en C# y C++/WinRT que muestra cómo usar HttpClient para conectarse a un servidor HTTP, consulte HttpClient.
Para obtener código de ejemplo en JavaScript y HTML que muestra cómo usar HttpClient para conectarse a un servidor HTTP, consulte Conexión a un servidor HTTP mediante Windows.Web.Http.
Historial de versiones
Versión de Windows | Versión del SDK | Valor agregado |
---|---|---|
1903 | 18362 | TryDeleteAsync |
1903 | 18362 | TryGetAsync(Uri) |
1903 | 18362 | TryGetAsync(Uri,HttpCompletionOption) |
1903 | 18362 | TryGetBufferAsync |
1903 | 18362 | TryGetInputStreamAsync |
1903 | 18362 | TryGetStringAsync |
1903 | 18362 | TryPostAsync |
1903 | 18362 | TryPutAsync |
1903 | 18362 | TrySendRequestAsync(HttpRequestMessage) |
1903 | 18362 | TrySendRequestAsync(HttpRequestMessage,HttpCompletionOption) |
Constructores
HttpClient() |
Inicializa una nueva instancia de la clase HttpClient . Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
HttpClient(IHttpFilter) |
Inicializa una nueva instancia de la clase HttpClient con un filtro específico para controlar los mensajes de respuesta HTTP. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
Propiedades
DefaultPrivacyAnnotation |
Envía solicitudes HTTP y recibe respuestas HTTP de un recurso identificado por un URI. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
DefaultRequestHeaders |
Obtiene una colección de encabezados que se deben enviar con cada solicitud. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
Métodos
Close() |
Cierra la instancia de HttpClient y libera los recursos asignados. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
DeleteAsync(Uri) |
Envíe una solicitud DELETE al URI especificado como una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
Dispose() |
Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados. |
GetAsync(Uri) |
Envía una solicitud GET al URI especificado como una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
GetAsync(Uri, HttpCompletionOption) |
Envíe una solicitud GET al URI especificado con una opción de finalización HTTP como una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
GetBufferAsync(Uri) |
Envíe una solicitud GET al URI especificado y devuelva el cuerpo de la respuesta como un búfer en una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
GetInputStreamAsync(Uri) |
Envíe una solicitud GET al URI especificado y devuelva el cuerpo de la respuesta como una secuencia en una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
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. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
PostAsync(Uri, IHttpContent) |
Envíe una solicitud POST al URI especificado como una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
PutAsync(Uri, IHttpContent) |
Envía una solicitud PUT al URI especificado como una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
SendRequestAsync(HttpRequestMessage) |
Envía una solicitud HTTP como una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
SendRequestAsync(HttpRequestMessage, HttpCompletionOption) |
Enviar una solicitud HTTP con una opción de finalización HTTP como una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
ToString() |
Devuelve una cadena que representa el objeto HttpClient actual. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
TryDeleteAsync(Uri) |
Envíe una solicitud DELETE al URI especificado como una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
TryGetAsync(Uri) |
Envía una solicitud GET al URI especificado como una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
TryGetAsync(Uri, HttpCompletionOption) |
Envía una solicitud GET al URI especificado como una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
TryGetBufferAsync(Uri) |
Envíe una solicitud GET al URI especificado y devuelva el cuerpo de la respuesta como HttpGetBufferResult con un valor IBuffer en una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
TryGetInputStreamAsync(Uri) |
Envíe una solicitud GET al URI especificado y devuelva el cuerpo de la respuesta como una secuencia en una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
TryGetStringAsync(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. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
TryPostAsync(Uri, IHttpContent) |
Envía una solicitud POST al URI especificado como una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
TryPutAsync(Uri, IHttpContent) |
Envía una solicitud PUT al URI especificado como una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
TrySendRequestAsync(HttpRequestMessage) |
Envía una solicitud HTTP al URI especificado como una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
TrySendRequestAsync(HttpRequestMessage, HttpCompletionOption) |
Envía una solicitud HTTP con una opción de finalización al URI especificado como una operación asincrónica. Para obtener instrucciones de programación para la clase HttpClient y ejemplos de código, consulte el tema conceptual HttpClient . |
Se aplica a
Consulte también
- IClosable
- IStringable
- Uri
- Windows.Web.Http
- Windows.Web.Http.Filters
- Windows.Web.Http.Headers
- HttpClient
- Conexión a un servidor HTTP mediante Windows.Web.Http
- Control de excepciones en aplicaciones de red
- System.Uri
- Ejemplo de transferencia en segundo plano
- Ejemplo de transferencia en segundo plano (Windows 8.x)
- Ejemplo httpClient (Windows 10)
- Ejemplo JSON (Windows 10)