System.Net.Http Namespace

Fornece uma interface de programação para aplicativos HTTP modernos.

Classes

ByteArrayContent

Fornece conteúdo HTTP baseado em uma matriz de bytes.

DelegatingHandler

Um tipo para manipuladores de HTTP que delegam o processamento de mensagens de resposta HTTP para outro manipulador, chamado de manipulador interno.

FormUrlEncodedContent

Um contêiner para tuplas de nome/valor codificadas usando o tipo MIME application/x-www-form-urlencoded.

HttpClient

Fornece uma classe para enviar solicitações HTTP e receber respostas HTTP de um recurso identificado por um URI.

HttpClientFactoryExtensions

Métodos de extensões para IHttpClientFactory.

HttpClientHandler

O manipulador de mensagens padrão usado pelo HttpClient no .NET Framework e .NET Core 2.0 e versões anteriores.

HttpContent

Uma classe base que representa um corpo de entidade HTTP e cabeçalhos de conteúdo.

HttpDiagnosticsHttpRequestMessageExtensions

Extensões para utilitários de telemetria.

HttpIOException

A exceção gerada quando ocorre um erro durante a leitura da resposta.

HttpMessageHandler

Um tipo base para manipuladores de mensagens HTTP.

HttpMessageHandlerFactoryExtensions

Métodos de extensões para IHttpMessageHandlerFactory.

HttpMessageInvoker

Uma classe de especialidade que permite que os aplicativos chamem o método SendAsync(HttpRequestMessage, CancellationToken) em uma cadeia de manipulador HTTP.

HttpMethod

Uma classe auxiliar para recuperação e comparação de métodos HTTP padrão e para a criação de novos métodos HTTP.

HttpProtocolException

A exceção gerada quando ocorre um erro de protocolo HTTP/2 ou HTTP/3.

HttpRequestException

Uma classe base para exceções lançadas pelo HttpClient e pelas classes HttpMessageHandler.

HttpRequestMessage

Representa uma mensagem de solicitação HTTP.

HttpRequestOptions

Representa uma coleção de opções para uma solicitação HTTP.

HttpResilienceHttpRequestMessageExtensions

As extensões de resiliência para HttpRequestMessage.

HttpResponseMessage

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

MessageProcessingHandler

Um tipo base para manipuladores que realizam apenas pequenos processamentos de mensagens de solicitação de e/ou resposta.

MultipartContent

Fornece uma coleção de objetos HttpContent que são serializados utilizando a especificação de tipo de conteúdo com diversas partes/*.

MultipartFormDataContent

Fornece um contêiner para conteúdo codificado usando o tipo MIME de várias partes/dados de formulário.

ReadOnlyMemoryContent

Fornece conteúdo HTTP baseado em ReadOnlyMemory<T>.

RtcRequestFactory

Fornece uma interface de programação para aplicativos HTTP modernos.

SocketsHttpConnectionContext

Representa o contexto passado para o ConnectCallback de uma instância de SocketsHttpHandler. .

SocketsHttpHandler

Oferece o manipulador de mensagens padrão usado pelo HttpClient no .NET Core 2.1 e versões anteriores.

SocketsHttpPlaintextStreamFilterContext

Representa o contexto passado a PlaintextStreamFilter para uma instância de SocketsHttpHandler.

StreamContent

Fornece conteúdo HTTP baseado em um fluxo.

StringContent

Fornece conteúdo HTTP baseado em uma cadeia de caracteres.

WebRequestHandler

Fornece recursos específicos da área de trabalho não disponíveis para aplicativos da Windows Store ou em outros ambientes.

WinHttpHandler

Manipula mensagens com base na interface WinHTTP do Windows. Essa classe destina-se ao uso em ambientes de servidor.

Estruturas

HttpRequestOptionsKey<TValue>

Representa uma chave na coleção de opções para uma solicitação HTTP.

Interfaces

IHttpClientFactory

Uma abstração de fábrica para um componente que pode criar instâncias de HttpClient com configuração personalizada para um determinado nome lógico.

IHttpMessageHandlerFactory

Uma abstração de fábrica para um componente que pode criar instâncias de HttpMessageHandler com configuração personalizada para um determinado nome lógico.

Enumerações

ClientCertificateOption

Especifica como os certificados de cliente são fornecidos.

CookieUsePolicy

Essa enumeração permite o controle de cookies HTTP ao se comunicar com o servidor.

HttpCompletionOption

Indica se operações HttpClient deverão ser consideradas concluídas assim que uma resposta estiver disponível ou após a leitura de toda a mensagem de resposta, incluindo o conteúdo.

HttpKeepAlivePingPolicy

Especifica quando o quadro de ping HTTP/2 é enviado em uma conexão ociosa.

HttpRequestError

Define categorias de erro que representam o motivo de HttpRequestException ou HttpIOException.

HttpVersionPolicy

Especifica comportamentos para selecionar e negociar a versão HTTP de uma solicitação.

WindowsProxyUsePolicy

Esta enumeração fornece opções disponíveis para as configurações de proxy usadas por um HttpClient durante a execução no Windows.

Delegados

HeaderEncodingSelector<TContext>

Representa um método que especifica a codificação a ser usada ao interpretar os valores de cabeçalho.

Comentários

O System.Net.Http namespace foi projetado para fornecer o seguinte:

  1. Componentes de cliente HTTP que permitem que os usuários consumam serviços Web modernos por HTTP.

  2. Componentes HTTP que podem ser usados por clientes e servidores (cabeçalhos HTTP e mensagens, por exemplo). Isso fornece um modelo de programação consistente no lado do cliente e do servidor para serviços Web modernos por HTTP.

O System.Net.Http namespace e o namespace relacionado System.Net.Http.Headers fornecem o seguinte conjunto de componentes:

  1. HttpClient – a classe primária usada para enviar e receber solicitações por HTTP.

  2. HttpRequestMessage e HttpResponseMessage - Mensagens HTTP conforme definido no RFC 2616 pelo IETF.

  3. HttpHeaders - Cabeçalhos HTTP conforme definido no RFC 2616 pelo IETF.

  4. HttpClientHandler – Manipuladores HTTP responsáveis por produzir mensagens de resposta HTTP.

Há vários manipuladores de mensagens HTTP que podem ser usados. Entre eles estão os descritos a seguir.

  1. DelegatingHandler - Uma classe usada para conectar um manipulador a uma cadeia de manipuladores.

  2. HttpMessageHandler – Uma classe simples para derivar que dá suporte aos requisitos mais comuns para a maioria dos aplicativos.

  3. HttpClientHandler - Uma classe que opera na parte inferior da cadeia de manipuladores que realmente manipula as operações de transporte HTTP.

  4. WebRequestHandler – Uma classe de especialidade que opera na parte inferior da classe de cadeia de manipuladores que manipula operações de transporte HTTP com opções específicas do System.Net.HttpWebRequest objeto.

O conteúdo de uma mensagem HTTP corresponde ao corpo da entidade definido no RFC 2616.

Várias classes podem ser usadas para conteúdo HTTP. Entre eles estão os descritos a seguir.

  1. ByteArrayContent – Conteúdo HTTP com base em uma matriz de bytes.

  2. FormUrlEncodedContent - Conteúdo HTTP de tuplas de nome/valor codificadas usando o tipo MIME application/x-www-form-urlencoded.

  3. MultipartContent – Conteúdo HTTP que é serializado usando a especificação de tipo de conteúdo de várias partes/*.

  4. MultipartFormDataContent - Conteúdo HTTP codificado usando o tipo MIME multipart/form-data.

  5. StreamContent - Conteúdo HTTP com base em um fluxo.

  6. StringContent - Conteúdo HTTP com base em uma cadeia de caracteres.

Se um aplicativo que usa os System.Net.Http namespaces e System.Net.Http.Headers pretende baixar grandes quantidades de dados (50 megabytes ou mais), o aplicativo deve 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 um desempenho substancialmente reduzido.

As classes nos System.Net.Http namespaces e System.Net.Http.Headers podem ser usadas para desenvolver aplicativos da Windows Store ou aplicativos da área de trabalho. Quando usadas em um aplicativo da Windows Store, as System.Net.Http classes nos namespaces e System.Net.Http.Headers são afetadas pelo recurso de isolamento de rede, parte do modelo de segurança do aplicativo usado pelo Windows 8. Os recursos de rede apropriados devem ser habilitados no manifesto do aplicativo para um aplicativo da Windows Store para que o sistema permita o acesso à rede por um aplicativo da Windows Store. Para obter mais informações, consulte o Isolamento de Rede para Aplicativos da Windows Store.

Confira também