Windows.Web.Http Namespace
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.
- WinJS.xhr para JavaScript
- HttpClient no namespace System.Net.Http para C# e VB.
- IXMLHTTPRequest2 para C++
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:
- HttpClient - a classe main que envia e recebe solicitações por HTTP.
- HttpRequestMessage - Mensagens de solicitação HTTP definidas no RFC 2616.
- HttpResponseMessage - Mensagens de resposta HTTP definidas no RFC 2616.
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.