HttpClientHandler Clase

Definición

Controlador de mensajes predeterminado utilizado por HttpClient en .NET Framework, .NET Core 2.0 y versiones anteriores.The default message handler used by HttpClient in .NET Framework and .NET Core 2.0 and earlier.

public ref class HttpClientHandler : System::Net::Http::HttpMessageHandler
public class HttpClientHandler : System.Net.Http.HttpMessageHandler
type HttpClientHandler = class
    inherit HttpMessageHandler
Public Class HttpClientHandler
Inherits HttpMessageHandler
Herencia
HttpClientHandler
Derivado

Ejemplos

static async Task Main()
{
   // Create an HttpClientHandler object and set to use default credentials
   HttpClientHandler handler = new HttpClientHandler();
   handler.UseDefaultCredentials = true;

   // Create an HttpClient object
   HttpClient client = new HttpClient(handler);

   // Call asynchronous network methods in a try/catch block to handle exceptions
   try	
   {
      HttpResponseMessage response = await client.GetAsync("http://www.contoso.com/");

      response.EnsureSuccessStatusCode();

      string responseBody = await response.Content.ReadAsStringAsync();
      Console.WriteLine(responseBody);
   }  
   catch(HttpRequestException e)
   {
       Console.WriteLine("\nException Caught!");	
       Console.WriteLine("Message :{0} ",e.Message);
   }

   // Need to call dispose on the HttpClient and HttpClientHandler objects 
   // when done using them, so the app doesn't leak resources
   handler.Dispose(true);
   client.Dispose(true);
}

En el ejemplo de código anterior se usa un punto de entrada de async Task Main().The preceding code example uses an async Task Main() entry point. Esta característica requiere C# 7,1 o posterior.That feature requires C# 7.1 or later.

Comentarios

La clase HttpClientHandler y las clases derivadas de ella permiten a los desarrolladores configurar diversas opciones que van desde servidores proxy hasta la autenticación.The HttpClientHandler class and classes derived from it enable developers to configure a variety of options ranging from proxies to authentication.

HttpClientHandler en .NET CoreHttpClientHandler in .NET Core

A partir de .NET Core 2,1, la clase System.Net.Http.SocketsHttpHandler en lugar de HttpClientHandler proporciona la implementación utilizada por las API de red HTTP de nivel superior.Starting with .NET Core 2.1, the System.Net.Http.SocketsHttpHandler class instead of HttpClientHandler provides the implementation used by higher-level HTTP networking APIs. Puede configurar la aplicación para usar HttpClientHandler en su lugar de cualquiera de las siguientes maneras:You can configure your application to use HttpClientHandler instead in any of the following ways:

  • Llamando al método AppContext.SetSwitch como se indica a continuación:By calling the AppContext.SetSwitch method as follows:

    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
    
    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", False)
    
  • Definiendo el modificador de System.Net.Http.UseSocketsHttpHandler en el archivo de configuración . netcore. runtimeConfig. JSON :By defining the System.Net.Http.UseSocketsHttpHandler switch in the .netcore.runtimeconfig.json configuration file:

    "runtimeOptions": {
      "configProperties": {
          "System.Net.Http.UseSocketsHttpHandler": false
      }
    }
    
  • Definiendo una variable de entorno denominada DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER y estableciéndolo en false o en 0.By defining an environment variable named DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER and setting it to either false or 0.

Constructores

HttpClientHandler()

Crea una instancia de una clase HttpClientHandler.Creates an instance of a HttpClientHandler class.

Propiedades

AllowAutoRedirect

Obtiene o establece un valor que indica si el controlador debe seguir respuestas de redirección.Gets or sets a value that indicates whether the handler should follow redirection responses.

AutomaticDecompression

Obtiene o establece el tipo de método de descompresión que usa el controlador para la descompresión automática de la respuesta de contenido HTTP.Gets or sets the type of decompression method used by the handler for automatic decompression of the HTTP content response.

CheckCertificateRevocationList

Obtiene o establece un valor que indica si el certificado se coteja con la lista de revocación de la entidad de certificación.Gets or sets a value that indicates whether the certificate is checked against the certificate authority revocation list.

ClientCertificateOptions

Obtiene o establece un valor que indica si el certificado se ha seleccionado automáticamente desde el almacén de certificados o si el autor de llamada tiene permiso para pasar un certificado de cliente específico.Gets or sets a value that indicates if the certificate is automatically picked from the certificate store or if the caller is allowed to pass in a specific client certificate.

ClientCertificates

Obtiene la colección de certificados de seguridad asociados a solicitud del servidor.Gets the collection of security certificates that are associated requests to the server.

CookieContainer

Obtiene o establece el contenedor de cookies que usa el controlador para almacenar cookies de servidor.Gets or sets the cookie container used to store server cookies by the handler.

Credentials

Obtiene o establece la información de autenticación que usa este controlador.Gets or sets authentication information used by this handler.

DangerousAcceptAnyServerCertificateValidator

Obtiene un delegado almacenado en caché que siempre devuelve true.Gets a cached delegate that always returns true.

DefaultProxyCredentials

Cuando se usa el proxy predeterminado (sistema), obtiene o establece las credenciales que se van a enviar al servidor proxy predeterminado para la autenticación.When the default (system) proxy is being used, gets or sets the credentials to submit to the default proxy server for authentication. El proxy predeterminado se usa solo cuando UseProxy está establecido en true y Proxy está establecido en null.The default proxy is used only when UseProxy is set to true and Proxy is set to null.

MaxAutomaticRedirections

Obtiene o establece el número máximo de redirecciones que sigue el controlador.Gets or sets the maximum number of redirects that the handler follows.

MaxConnectionsPerServer

Obtiene o establece el número máximo de conexiones simultáneas (por punto de conexión del servidor) permitido al realizar solicitudes mediante un objeto HttpClient.Gets or sets the maximum number of concurrent connections (per server endpoint) allowed when making requests using an HttpClient object. Tenga en cuenta que el límite es por punto de conexión del servidor, así que, por ejemplo, un valor de 256 permitiría 256 conexiones simultáneas con http://www.adatum.com/ y otras 256 con http://www.adventure-works.com/.Note that the limit is per server endpoint, so for example a value of 256 would permit 256 concurrent connections to http://www.adatum.com/ and another 256 to http://www.adventure-works.com/.

MaxRequestContentBufferSize

Obtiene o establece el tamaño máximo del búfer de contenido de solicitudes que usa el controlador.Gets or sets the maximum request content buffer size used by the handler.

MaxResponseHeadersLength

Obtiene o establece la longitud máxima, en kilobytes (1024 bytes), de los encabezados de respuesta.Gets or sets the maximum length, in kilobytes (1024 bytes), of the response headers. Por ejemplo, si el valor es 64, se permiten 65536 bytes como longitud máxima de los encabezados de respuesta.For example, if the value is 64, then 65536 bytes are allowed for the maximum response headers' length.

PreAuthenticate

Obtiene o establece un valor que indica si el controlador envía un encabezado Authorization con la solicitud.Gets or sets a value that indicates whether the handler sends an Authorization header with the request.

Properties

Obtiene un diccionario que permite la escritura (es decir, un mapa) de propiedades personalizadas para las solicitudes HttpClient.Gets a writable dictionary (that is, a map) of custom properties for the HttpClient requests. El diccionario se inicializa vacío; puede insertar y consultar pares clave-valor para los controladores personalizados y el procesamiento especial.The dictionary is initialized empty; you can insert and query key-value pairs for your custom handlers and special processing.

Proxy

Obtiene o establece la información de proxy que usa el controlador.Gets or sets proxy information used by the handler.

ServerCertificateCustomValidationCallback

Obtiene o establece un método de devolución de llamada para validar el certificado de servidor.Gets or sets a callback method to validate the server certificate.

SslProtocols

Obtiene o establece el protocolo TLS/SSL usado por los objetos HttpClient administrados por el objeto HttpClientHandler.Gets or sets the TLS/SSL protocol used by the HttpClient objects managed by the HttpClientHandler object.

SupportsAutomaticDecompression

Obtiene un valor que indica si el controlador admite descompresión automática de contenido de respuesta.Gets a value that indicates whether the handler supports automatic response content decompression.

SupportsProxy

Obtiene un valor que indica si el controlador admite configuración de proxy.Gets a value that indicates whether the handler supports proxy settings.

SupportsRedirectConfiguration

Obtiene un valor que indica si el controlador admite opciones de configuración para las propiedades AllowAutoRedirect y MaxAutomaticRedirections.Gets a value that indicates whether the handler supports configuration settings for the AllowAutoRedirect and MaxAutomaticRedirections properties.

UseCookies

Obtiene o establece un valor que indica si el controlador usa la propiedad CookieContainer para almacenar cookies de servidor y usa estas cookies al enviar solicitudes.Gets or sets a value that indicates whether the handler uses the CookieContainer property to store server cookies and uses these cookies when sending requests.

UseDefaultCredentials

Obtiene o establece un valor que controla si se envían las credenciales predeterminadas con las solicitudes del controlador.Gets or sets a value that controls whether default credentials are sent with requests by the handler.

UseProxy

Obtiene o establece un valor que indica si el controlador usa un proxy para las solicitudes.Gets or sets a value that indicates whether the handler uses a proxy for requests.

Métodos

Dispose()

Libera los recursos no administrados y desecha los recursos administrados que usa HttpMessageHandler.Releases the unmanaged resources and disposes of the managed resources used by the HttpMessageHandler.

(Heredado de HttpMessageHandler)
Dispose(Boolean)

Libera los recursos no administrados que usa el objeto HttpClientHandler y, de forma opcional, desecha los recursos administrados.Releases the unmanaged resources used by the HttpClientHandler and optionally disposes of the managed resources.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
SendAsync(HttpRequestMessage, CancellationToken)

Crea una instancia de HttpResponseMessage según la información proporcionada en el HttpRequestMessage como una operación que no se bloqueará.Creates an instance of HttpResponseMessage based on the information provided in the HttpRequestMessage as an operation that will not block.

ToString()

Devuelve un valor de tipo string que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Se aplica a

Consulte también: