Windows.Web.Http Espacio de nombres

Proporciona una API de cliente HTTP moderna para la aplicación para UWP.

Clases

HttpBufferContent

Proporciona contenido HTTP que usa un búfer.

HttpClient

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 .

HttpCookie

Proporciona un conjunto de propiedades y métodos para administrar una cookie HTTP.

HttpCookieCollection

Proporciona un contenedor de recopilación para instancias de la clase HttpCookie .

HttpCookieManager

Agregue o elimine un HttpCookie o vea las cookies asociadas a una aplicación.

HttpFormUrlEncodedContent

Proporciona contenido HTTP que usa datos de nombre y valor codificados con el tipo MIME application/x-www-form-urlencoded .

HttpGetBufferResult

Combina el resultado final del búfer junto con lo siguiente: la solicitud HTTP original, la respuesta HTTP resultante (si existe), un valor de error extendido y una indicación correcta.

HttpGetInputStreamResult

Combina el resultado final del flujo de entrada junto con lo siguiente: la solicitud HTTP original, la respuesta HTTP resultante (si existe), un valor de error extendido y una indicación correcta.

HttpGetStringResult

Combina el resultado final de la cadena junto con lo siguiente: la solicitud HTTP original, la respuesta HTTP resultante (si existe), un valor de error extendido y una indicación correcta.

HttpMethod

Recupera métodos HTTP estándar, como GET y POST, y crea nuevos métodos HTTP.

HttpMultipartContent

Proporciona contenido HTTP que usa el tipo MIME multipart/* .

HttpMultipartFormDataContent

Proporciona contenido HTTP que usa el tipo MIME multipart/form-data .

HttpRequestMessage

Representa un mensaje de solicitud HTTP que incluye encabezados.

HttpRequestResult

Combina la solicitud HTTP original junto con lo siguiente: la respuesta HTTP resultante (si existe), un valor de error extendido y una indicación correcta.

HttpResponseMessage

Representa un mensaje de respuesta HTTP que incluye encabezados, el código de estado y los datos.

HttpStreamContent

Proporciona contenido HTTP que usa una secuencia.

HttpStringContent

Proporciona contenido HTTP que usa una cadena.

HttpTransportInformation

Proporciona información sobre el transporte subyacente utilizado por la conexión HTTP.

Estructuras

HttpProgress

Contiene información de estado sobre el progreso de una operación HttpClient .

Interfaces

IHttpContent

Proporciona una interfaz base para un cuerpo de entidad HTTP y encabezados de contenido.

Enumeraciones

HttpCompletionOption

Indica si las operaciones HttpClient asincrónicas se consideran completadas cuando se lee toda la respuesta o cuando solo se leen los encabezados.

HttpProgressStage

Indica el paso en curso de una conexión HTTP.

HttpResponseMessageSource

Indica el origen de los datos recibidos en HttpResponseMessage.

HttpStatusCode

Contiene los valores de los códigos de estado definidos para HTTP en la respuesta a una solicitud HTTP.

HttpVersion

Representa la versión del protocolo HTTP.

Ejemplos

En el código de ejemplo siguiente se muestra cómo obtener contenido de un servidor HTTP como una cadena.

using System;
using Windows.Foundation;
using Windows.Web.Http;

// Note: the URI constructor will throw an exception
// if the string passed is not a valid URI
var uri = new Uri("http://example.com/datalist.aspx");
var httpClient = new HttpClient();

// Always catch network exceptions for async methods
try 
{
    var result = await httpClient.GetStringAsync(uri);
}
catch (Exception ex)
{
    // Details in ex.Message and ex.HResult.       
}

// Once your app is done using the HttpClient object call dispose to 
// free up system resources (the underlying socket and memory used for the object)
httpclient.Dispose();
#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;

// Note: the URI constructor will throw an exception
// if the string passed is not a valid URI
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 (Exception ^ ex) 
{
    // 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).

Comentarios

El espacio de nombres Windows.Web.Http y los espacios de nombres Windows.Web.Http.Headers y Windows.Web.Http.Filters relacionados proporcionan una interfaz de programación para aplicaciones para UWP destinadas a servicios HTTP y REST. Estas características de esta nueva API HTTP están diseñadas para cumplir con HTTP tal y como se define en RFC 2616 por IETF. La nueva API HTTP proporciona compatibilidad coherente con JavaScript, C#, VB.NET y C++ para desarrolladores.

Esta nueva API reemplaza el uso de tres API diferentes por características diferentes que anteriormente se necesitaban para cada proyección de lenguaje en Windows 8.

Las clases de Windows.Web.Http y los espacios de nombres relacionados están destinados a todos los niveles de desarrollo HTTP y REST:

  • Desarrolladores DE HTTP básicos
  • Desarrolladores de bibliotecas HTTP específicas del sitio
  • Desarrolladores de HTTP avanzados

Para los desarrolladores HTTP básicos, la nueva API tiene una interfaz sencilla para controlar las tareas más comunes y los valores predeterminados razonables para la autenticación que deben funcionar en la mayoría de los entornos. Para los desarrolladores de bibliotecas, el modelo de objetos coherente y la compatibilidad con varios lenguajes significa que puede escribir una biblioteca una vez para los desarrolladores en todos los lenguajes. Para desarrolladores http avanzados, la nueva API incluye un amplio conjunto de funcionalidades.

El espacio de nombres Windows.Web.Http y los espacios de nombres relacionados proporcionan estos componentes:

El contenido de un mensaje HTTP corresponde al cuerpo de la entidad definido en RFC 2616. Se pueden usar varias clases y una interfaz en el espacio de nombres Windows.Web.Http para el contenido HTTP, entre las que se incluyen:

  • IHttpContent : una interfaz base para que los desarrolladores creen sus propios objetos de contenido. Representa un cuerpo de entidad HTTP y encabezados de contenido. Esta interfaz tiene métodos que obtienen y establecen los datos de contenido reales. También proporciona propiedades que obtienen y establecen encabezados relacionados con el contenido.
  • HttpBufferContent : contenido HTTP que usa un búfer.
  • HttpFormUrlEncodedContent : contenido HTTP que usa tuplas de nombre y valor codificadas con el tipo MIME application/x-www-form-urlencoded .
  • HttpMultipartContent : contenido HTTP que usa el tipo MIME multipart/*.
  • HttpMultipartFormDataContent : contenido HTTP que usa el tipo MIME de datos de varios elementos/formularios codificados.
  • HttpStreamContent : contenido HTTP que usa una secuencia. El método HTTP GET usa este tipo de contenido para recibir datos y el método HTTP POST para cargar datos.
  • HttpStringContent : contenido HTTP que usa una cadena.

Las clases del espacio de nombres Windows.Web.Http.Headers representan encabezados HTTP definidos en RFC 2616. Los encabezados HTTP se asocian a HttpRequestMessage y HttpResponseMessage como propiedades que se recuperan o establecen.

Las clases del espacio de nombres Windows.Web.Http pueden usar filtros basados en las clases del espacio de nombres Windows.Web.Http.Filters . Los filtros proporcionan controladores para ayudar con problemas comunes del servicio HTTP. Los filtros se pueden encadenar en una secuencia para solucionar problemas de servicio HTTP más complejos. Se incluyen varios filtros listos para usar con Windows 8.1 para ayudar a los desarrolladores de bibliotecas a corregir problemas comunes del servicio HTTP. Estos filtros incluyen controladores para conexiones de red supervisadas y reintento. Los desarrolladores de bibliotecas pueden escribir sus propios filtros para problemas específicos del sitio (por ejemplo, un sitio podría usar la respuesta 503 (servidor no disponible) para indicar que se debe reintentar la solicitud).

Si una aplicación que usa el espacio de nombres Windows.Web.Http y los espacios de nombres Windows.Web.Http.Headers y Windows.Web.Http.Filters relacionados descargan 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 es muy grande, lo que podría provocar un rendimiento reducido.

Para obtener código de ejemplo en C#/VB/C++ y XAML 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.