HttpClient Classe

Definição

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 .

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
Herança
Object Platform::Object IInspectable HttpClient
Atributos
Implementações

Requisitos do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v1.0)

Exemplos

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

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

A classe HttpClient geralmente é usada por um aplicativo para baixar e, em seguida, analisar texto. É possível que a codificação de caracteres especificada no cabeçalho Tipo de Conteúdo por um servidor HTTP não corresponda à codificação de caracteres do corpo da resposta HTTP (a codificação XML em um documento XML, por exemplo). Uma maneira de usar HttpClient com texto é chamar o método GetStringAsync e passar a cadeia de caracteres retornada para o analisador de texto. No entanto, isso poderá resultar em erros se o Tipo de Conteúdo não for um tipo expressível como uma cadeia de caracteres. Uma maneira confiável de usar HttpClient com um analisador XML é chamar o método GetBufferAsync e analisar o buffer para o elemento "<?xml>". Em seguida, use a codificação de caracteres especificada ("<xmlversion="1.0" encoding="UTF-8"?>", por exemplo) para analisar o corpo da resposta HTTP. Para outros formatos de texto, métodos semelhantes podem ser usados em que o aplicativo examina a parte inicial do corpo da resposta HTTP para determinar a codificação de caracteres usada.

Comentários

A instância da classe HttpClient atua como uma sessão para enviar solicitações HTTP e receber respostas. Uma instância httpClient é uma coleção de configurações que se aplicam a todas as solicitações executadas por essa instância. Além disso, cada instância httpClient usa seu próprio pool de conexões, isolando suas solicitações de solicitações executadas por outras instâncias httpClient.

O HttpClient também atua como uma classe a ser usada com filtros para clientes HTTP mais específicos. Um exemplo seria um HttpClientFilter que fornece métodos adicionais específicos para um serviço de rede social (um método GetFriends, por exemplo).

Se um aplicativo que usa HttpClient e classes relacionadas no namespace Windows.Web.Http 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 um código de exemplo em C# e C++/WinRT que mostra como usar HttpClient para se conectar a um servidor HTTP, consulte HttpClient.

Para obter um 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.

Histórico de versão

Versão do Windows Versão do SDK Valor adicionado
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)

Construtores

HttpClient()

Inicializa uma nova instância da classe HttpClient . Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

HttpClient(IHttpFilter)

Inicializa uma nova instância da classe HttpClient com um filtro específico para lidar com mensagens de resposta HTTP. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

Propriedades

DefaultPrivacyAnnotation

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 .

DefaultRequestHeaders

Obtém uma coleção de cabeçalhos que devem ser enviados com cada solicitação. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

Métodos

Close()

Fecha a instância httpClient e libera recursos alocados. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

DeleteAsync(Uri)

Envie uma solicitação DELETE para o Uri especificado como uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

Dispose()

Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados.

GetAsync(Uri)

Envie uma solicitação GET para o URI especificado como uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

GetAsync(Uri, HttpCompletionOption)

Envie uma solicitação GET para o Uri especificado com uma opção de conclusão HTTP como uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

GetBufferAsync(Uri)

Envie uma solicitação GET para o Uri especificado e retorne o corpo da resposta como um buffer em uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

GetInputStreamAsync(Uri)

Envie uma solicitação GET para o Uri especificado e retorne o corpo da resposta como um fluxo em uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

GetStringAsync(Uri)

Envie uma solicitação GET para o URI especificado e retorne o corpo da resposta como uma cadeia de caracteres em uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

PostAsync(Uri, IHttpContent)

Envie uma solicitação POST para o URI especificado como uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

PutAsync(Uri, IHttpContent)

Envie uma solicitação PUT para o URI especificado como uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

SendRequestAsync(HttpRequestMessage)

Envie uma solicitação HTTP como uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

SendRequestAsync(HttpRequestMessage, HttpCompletionOption)

Envie uma solicitação HTTP com uma opção de conclusão HTTP como uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

ToString()

Retorna uma cadeia de caracteres que representa o objeto HttpClient atual. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

TryDeleteAsync(Uri)

Envie uma solicitação DELETE para o Uri especificado como uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

TryGetAsync(Uri)

Envia uma solicitação GET para o Uri especificado como uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

TryGetAsync(Uri, HttpCompletionOption)

Envia uma solicitação GET para o Uri especificado como uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

TryGetBufferAsync(Uri)

Envie uma solicitação GET para o Uri especificado e retorne o corpo da resposta como HttpGetBufferResult com um valor IBuffer em uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

TryGetInputStreamAsync(Uri)

Envie uma solicitação GET para o Uri especificado e retorne o corpo da resposta como um fluxo em uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

TryGetStringAsync(Uri)

Envie uma solicitação GET para o URI especificado e retorne o corpo da resposta como uma cadeia de caracteres em uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

TryPostAsync(Uri, IHttpContent)

Envia uma solicitação POST para o Uri especificado como uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

TryPutAsync(Uri, IHttpContent)

Envia uma solicitação PUT para o Uri especificado como uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

TrySendRequestAsync(HttpRequestMessage)

Envia uma solicitação HTTP para o Uri especificado como uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

TrySendRequestAsync(HttpRequestMessage, HttpCompletionOption)

Envia uma solicitação HTTP com uma opção de conclusão para o Uri especificado como uma operação assíncrona. Para obter diretrizes de programação para a classe HttpClient e exemplos de código, consulte o tópico conceitual HttpClient .

Aplica-se a

Confira também