SocketsHttpHandler Classe
Definição
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.
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
- 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 comofalse
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 |
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 com o mesmo servidor. |
EnableMultipleHttp3Connections |
Oferece o manipulador de mensagens padrão usado pelo HttpClient no .NET Core 2.1 e versões anteriores. |
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 é |
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) |