SocketsHttpHandler Classe

Definição

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

public ref class SocketsHttpHandler sealed : System::Net::Http::HttpMessageHandler
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public sealed class SocketsHttpHandler : System.Net.Http.HttpMessageHandler
public sealed class SocketsHttpHandler : System.Net.Http.HttpMessageHandler
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type SocketsHttpHandler = class
    inherit HttpMessageHandler
type SocketsHttpHandler = class
    inherit HttpMessageHandler
Public NotInheritable Class SocketsHttpHandler
Inherits HttpMessageHandler
Herança
SocketsHttpHandler
Atributos

Comentários

A partir do .NET Core 2.1, a SocketsHttpHandler classe fornece a implementação usada por classes de rede HTTP de nível superior, como HttpClient. O uso de SocketsHttpHandler oferece várias vantagens:

  • Uma melhoria de desempenho significativa quando comparada com a implementação anterior.

  • A eliminação de dependências de plataforma, que simplifica a implantação e a manutenção. Por exemplo, libcurl não é mais uma dependência do .NET Core para macOS e .NET Core para Linux.

  • Comportamento consistente em todas as plataformas .NET.

Se essa alteração for indesejável e você estiver no .NET Core 2.1-3.1, poderá configurar seu aplicativo para usar a classe mais antiga System.Net.Http.HttpClientHandler de várias maneiras:

  • Chamando o método da AppContext.SetSwitch seguinte maneira:

    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
    
    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", False)
    
  • Definindo a opção System.Net.Http.UseSocketsHttpHandler no arquivo de configuração .netcore.runtimeconfig.json :

    "runtimeOptions": {
      "configProperties": {
          "System.Net.Http.UseSocketsHttpHandler": false
      }
    }
    
  • Definindo uma variável de ambiente chamada DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER e definindo-a como false ou 0.

Essas opções de configuração não estão disponíveis a partir do .NET 5.

Construtores

SocketsHttpHandler()

Cria uma instância de uma classe SocketsHttpHandler.

Propriedades

ActivityHeadersPropagator

Obtém ou define o propagador a ser usado ao propagar o rastreamento e o contexto distribuídos. Use null para desabilitar a propagação.

AllowAutoRedirect

Obtém ou define um valor que indica se o manipulador deve seguir as respostas de redirecionamento.

AutomaticDecompression

Obtém ou define o tipo de método de descompactação usado pelo manipulador para descompactação automática da resposta de conteúdo HTTP.

ConnectCallback

Obtém ou define um retorno de chamada personalizado usado para abrir novas conexões.

ConnectTimeout

Obtém ou define o intervalo de espera antes que o tempo limite de estabelecimento da conexão seja atingido.

CookieContainer

Obtém ou define o objeto de contêiner do cookie gerenciado.

Credentials

Obtém ou define informações de autenticação usadas por este manipulador.

DefaultProxyCredentials

Quando o proxy padrão (de sistema) é usado, obtém ou define as credenciais usadas para enviar ao servidor proxy padrão para autenticação.

EnableMultipleHttp2Connections

Obtém ou define um valor que indica se conexões HTTP/2 adicionais podem ser estabelecidas para o mesmo servidor quando o número máximo de fluxos simultâneos é atingido em todas as conexões existentes.

Expect100ContinueTimeout

Obtém ou define o valor de tempo limite para a resposta HTTP 100 Continue do servidor.

InitialHttp2StreamWindowSize

Define o tamanho inicial da janela de recebimento do fluxo HTTP2 para todas as conexões abertas por este SocketsHttpHandler.

IsSupported

Obtém um valor que indica se o manipulador tem suporte na plataforma atual.

KeepAlivePingDelay

Obtém ou define o atraso do ping de keep alive.

KeepAlivePingPolicy

Obtém ou define o comportamento do ping de keep alive.

KeepAlivePingTimeout

Obtém ou define o tempo limite do ping de keep alive.

MaxAutomaticRedirections

Obtém ou define o número máximo de redirecionamentos de HTTP permitidos.

MaxConnectionsPerServer

Obtém ou define o número máximo de conexões TCP simultâneas permitido para um único servidor.

MaxResponseDrainSize

Obtém ou define o volume máximo de dados que pode ser extraído das respostas em bytes.

MaxResponseHeadersLength

Obtém ou define o comprimento máximo, em quilobytes (1024 bytes), dos cabeçalhos de resposta.

MeterFactory

Obtém ou define o IMeterFactory para criar um personalizado Meter para a SocketsHttpHandler instância.

PlaintextStreamFilter

Obtém ou define um retorno de chamada personalizado que fornece acesso ao fluxo de protocolo HTTP de texto sem formatação.

PooledConnectionIdleTimeout

Obtém ou define quanto tempo uma conexão pode ficar ociosa no pool para ser considerada reutilizável.

PooledConnectionLifetime

Obtém ou define quanto tempo uma conexão pode ficar no pool para ser considerada reutilizável.

PreAuthenticate

Obtém ou define um valor que indica se o manipulador envia um cabeçalho de autorização com a solicitação.

Properties

Obtém um dicionário gravável (ou seja, um mapa) de propriedades personalizadas para as solicitações HttpClient. O dicionário é inicializado vazio. Você pode inserir e consultar pares chave-valor para seus manipuladores personalizados e processamento especial.

Proxy

Obtém ou define o proxy personalizado quando a propriedade UseProxy é true.

RequestHeaderEncodingSelector

Obtém ou define um retorno de chamada que seleciona o Encoding para codificar valores de cabeçalho de solicitação.

ResponseDrainTimeout

Obtém ou define o intervalo de espera para que os dados sejam descarregados das respostas.

ResponseHeaderEncodingSelector

Obtém ou define um retorno de chamada que seleciona o Encoding para decodificar valores de cabeçalho de resposta.

SslOptions

Obtém ou define o conjunto de opções usadas para a autenticação TLS do cliente.

UseCookies

Obtém ou define um valor que indica se o manipulador deve usar cookies.

UseProxy

Obtém ou define um valor que indica se o manipulador deve usar um proxy.

Métodos

Dispose()

Libera os recursos não gerenciados e descarta aqueles gerenciados usados pelo HttpMessageHandler.

(Herdado de HttpMessageHandler)
Dispose(Boolean)

Libera os recursos não gerenciados usados pelo HttpMessageHandler e, opcionalmente, descarta os recursos gerenciados.

(Herdado de HttpMessageHandler)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
Send(HttpRequestMessage, CancellationToken)

Quando substituído em uma classe derivada, envia uma solicitação HTTP com a solicitação e o token de cancelamento especificados. Caso contrário, gerará um NotSupportedException.

(Herdado de HttpMessageHandler)
SendAsync(HttpRequestMessage, CancellationToken)

Envie uma solicitação HTTP como uma operação assíncrona.

(Herdado de HttpMessageHandler)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a