Windows.Web.Http Namespace

Fornece uma API de cliente HTTP moderna para o aplicativo UWP.

Classes

HttpBufferContent

Fornece conteúdo HTTP que usa um buffer.

HttpClient

Envia solicitações HTTP e recebe respostas HTTP de um recurso identificado por um URI. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

HttpCookie

Fornece um conjunto de propriedades e métodos para gerenciar um cookie HTTP.

HttpCookieCollection

Fornece um contêiner de coleção para instâncias da classe HttpCookie .

HttpCookieManager

Adicione ou exclua um HttpCookie ou exiba os cookies associados a um aplicativo.

HttpFormUrlEncodedContent

Fornece conteúdo HTTP que usa dados de nome/valor codificados com o tipo MIME application/x-www-form-urlencoded .

HttpGetBufferResult

Combina o resultado final do buffer junto com o seguinte: a solicitação HTTP original, a resposta HTTP resultante (se houver), um valor de erro estendido e uma indicação bem-sucedida.

HttpGetInputStreamResult

Combina o resultado final do fluxo de entrada junto com o seguinte: a solicitação HTTP original, a resposta HTTP resultante (se houver), um valor de erro estendido e uma indicação bem-sucedida.

HttpGetStringResult

Combina o resultado final da cadeia de caracteres junto com o seguinte: a solicitação HTTP original, a resposta HTTP resultante (se houver), um valor de erro estendido e uma indicação bem-sucedida.

HttpMethod

Recupera métodos HTTP padrão, como GET e POST, e cria novos métodos HTTP.

HttpMultipartContent

Fornece conteúdo HTTP que usa o tipo MIME de várias partes/*.

HttpMultipartFormDataContent

Fornece conteúdo HTTP que usa o tipo MIME multipart/form-data .

HttpRequestMessage

Representa uma mensagem de solicitação HTTP, incluindo cabeçalhos.

HttpRequestResult

Combina a solicitação HTTP original junto com o seguinte: a resposta HTTP resultante (se houver), um valor de erro estendido e uma indicação bem-sucedida.

HttpResponseMessage

Representa uma mensagem de resposta HTTP, incluindo cabeçalhos, o código status e os dados.

HttpStreamContent

Fornece conteúdo HTTP que usa um fluxo.

HttpStringContent

Fornece conteúdo HTTP que usa uma cadeia de caracteres.

HttpTransportInformation

Fornece informações sobre o transporte subjacente usado pela conexão HTTP.

Estruturas

HttpProgress

Contém status informações sobre o progresso de uma operação HttpClient.

Interfaces

IHttpContent

Fornece uma interface base para um corpo de entidade HTTP e cabeçalhos de conteúdo.

Enumerações

HttpCompletionOption

Indica se as operações HttpClient assíncronas são consideradas concluídas quando toda a resposta é lida ou quando apenas os cabeçalhos são lidos.

HttpProgressStage

Indica a etapa em andamento para uma conexão HTTP.

HttpResponseMessageSource

Indica a origem dos dados recebidos no HttpResponseMessage.

HttpStatusCode

Contém os valores de status códigos definidos para HTTP na resposta a uma solicitação HTTP.

HttpVersion

Representa a versão do protocolo HTTP.

Exemplos

O código de exemplo a seguir mostra como OBTER conteúdo de um servidor HTTP como uma cadeia de caracteres.

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).

Comentários

O namespace Windows.Web.Http e os namespaces Windows.Web.Http.Headers e Windows.Web.Http.Filters relacionados fornecem uma interface de programação para o aplicativo UWP direcionado aos serviços HTTP e REST. Esses recursos dessa nova API HTTP foram projetados para estar em conformidade com HTTP, conforme definido no RFC 2616 pelo IETF. A nova API HTTP fornece suporte consistente em JavaScript, C#, VB.NET e C++ para desenvolvedores.

Essa nova API substitui o uso de três APIs diferentes por recursos diferentes que antes eram necessários para cada projeção de idioma no Windows 8.

As classes em Windows.Web.Http e namespaces relacionados são direcionadas em todos os níveis de desenvolvimento HTTP e REST:

  • Desenvolvedores HTTP básicos
  • Desenvolvedores de biblioteca HTTP específicos do site
  • Desenvolvedores HTTP avançados

Para desenvolvedores http básicos, a nova API tem uma interface simples para lidar com as tarefas mais comuns e padrões sensatos para autenticação que devem funcionar na maioria dos ambientes. Para desenvolvedores de biblioteca, o modelo de objeto consistente e o suporte a vários idiomas significa que você pode escrever uma biblioteca uma vez para desenvolvedores em todas as linguagens. Para desenvolvedores http avançados, a nova API inclui um conjunto avançado de recursos.

O namespace Windows.Web.Http e os namespaces relacionados fornecem estes componentes:

O conteúdo de uma mensagem HTTP corresponde ao corpo da entidade definido no RFC 2616. Várias classes e uma interface no namespace Windows.Web.Http podem ser usadas para conteúdo HTTP, incluindo:

  • IHttpContent – uma interface base para os desenvolvedores criarem seus próprios objetos de conteúdo. Ele representa um corpo de entidade HTTP e cabeçalhos de conteúdo. Essa interface tem métodos que obtêm e definem os dados de conteúdo reais. Ele também fornece propriedades que obtêm e definem cabeçalhos relacionados ao conteúdo.
  • HttpBufferContent – conteúdo HTTP que usa um buffer.
  • HttpFormUrlEncodedContent - conteúdo HTTP que usa tuplas de nome/valor codificadas com o tipo MIME application/x-www-form-urlencoded .
  • HttpMultipartContent – conteúdo HTTP que usa o tipo MIME de várias partes/*.
  • HttpMultipartFormDataContent – conteúdo HTTP que usa o tipo MIME multipart/form-data codificado.
  • HttpStreamContent – conteúdo HTTP que usa um fluxo. Esse tipo de conteúdo é usado pelo método HTTP GET para receber dados e o método HTTP POST para carregar dados.
  • HttpStringContent – conteúdo HTTP que usa uma cadeia de caracteres.

Classes no namespace Windows.Web.Http.Headers representam cabeçalhos HTTP definidos no RFC 2616. Os cabeçalhos HTTP são associados a HttpRequestMessage e HttpResponseMessage como propriedades recuperadas ou definidas.

As classes no namespace Windows.Web.Http podem usar filtros com base nas classes no namespace Windows.Web.Http.Filters . Os filtros fornecem manipuladores para ajudar com problemas comuns de serviço HTTP. Os filtros podem ser encadeados em uma sequência para resolver problemas de serviço HTTP mais complexos. Vários filtros prontos para uso são incluídos com Windows 8.1 para ajudar os desenvolvedores de biblioteca a corrigir problemas comuns de serviço HTTP. Esses filtros incluem manipuladores para conexões de rede monitoradas e novas tentativas. Os desenvolvedores de biblioteca podem escrever seus próprios filtros para problemas específicos do site (por exemplo, um site pode usar a resposta 503 (Servidor Indisponível) para indicar que a solicitação deve ser repetida).

Se um aplicativo que usa o namespace Windows.Web.Http e os namespaces Windows.Web.Http.Headers e Windows.Web.Http.Filters relacionados baixar grandes quantidades de dados (50 megabytes ou mais), o aplicativo deverá transmitir esses downloads e não usar o buffer padrão. Se o buffer padrão for usado, o uso de memória do cliente ficará muito grande, potencialmente resultando em desempenho reduzido.

Para obter o código de exemplo em C#/VB/C++ e XAML que mostra como usar HttpClient para se conectar a um servidor HTTP, consulte HttpClient.

Para obter o código de exemplo em JavaScript e HTML que mostra como usar HttpClient para se conectar a um servidor HTTP, consulte Conectando-se a um servidor HTTP usando Windows.Web.Http.