WinHttpHandler Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Controla los mensajes basados en la interfaz WinHTTP de Windows. Esta clase está pensada para su uso en entornos de servidor.
public ref class WinHttpHandler : System::Net::Http::HttpMessageHandler
public class WinHttpHandler : System.Net.Http.HttpMessageHandler
type WinHttpHandler = class
inherit HttpMessageHandler
Public Class WinHttpHandler
Inherits HttpMessageHandler
- Herencia
Comentarios
WinHttpHandler es similar a otras clases existentes, como HttpClientHandler. WinHttpHandler proporciona un controlador debajo de una HttpClient instancia y se usa para enviar solicitudes HTTP a un servidor y recibir respuestas de servidor. La WinHttpHandler implementación admite versiones HTTP de hasta HTTP/2.
WinHttpHandler proporciona a los desarrolladores un control más granular sobre la comunicación HTTP de la aplicación que la HttpClientHandler clase . Esto permite a los desarrolladores implementar escenarios HTTP más avanzados o modificar los valores predeterminados del sistema (por ejemplo, configuración de proxy, tiempos de espera y validación de certificados SSL de servidor).
WinHttpHandler no está pensado para ser un reemplazo de HttpClientHandler. En su lugar, es una versión más avanzada que se proporciona para escenarios en HttpClientHandler los que no es suficiente. WinHttpHandler se implementa como contenedor fino en la interfaz WinHTTP de Windows y solo se admite en sistemas Windows.
Al usar una cadena de varios controladores, WinHttpHandler debe estar en la parte inferior de la cadena.
A partir de .NET 5, WinHttpHandler ya no se incluye en el ensamblado deSystem.Net.Http.dll como parte del entorno de ejecución de .NET. Para obtener más información, consulte WinHttpHandler quitado del entorno de ejecución de .NET.
Encabezados finales
A partir de la versión 6.0.0, WinHttpHandler admite encabezados finales, también conocidos como finalizadores (RFC 7230 - 4.1.2). Parte de tráiler fragmentado).
- En .NET Standard 2.1 y .NET 8 o posterior, los finalizadores se agregan a TrailingHeaders.
- En .NET Framework, los finalizadores se agregan a una propiedad conocida en HttpRequestMessage.Properties en el objeto de solicitud correspondiente a la respuesta (HttpResponseMessage.RequestMessage). El nombre de la propiedad es
__ResponseTrailers, el tipo del valor de propiedad es HttpHeaders.
La compatibilidad con finalizadores se implementa a través de la WINHTTP_QUERY_FLAG_TRAILERSmarca de información de consulta que se ha introducido en Windows 11, versión 21H2 (10.0; Compilación 22000). En los sistemas Windows en WINHTTP_QUERY_FLAG_TRAILERS los que no se admite, se omiten los finalizadores.
Constructores
| Nombre | Description |
|---|---|
| WinHttpHandler() |
Inicializa una nueva instancia de la clase WinHttpHandler. |
Propiedades
| Nombre | Description |
|---|---|
| AutomaticDecompression |
Obtiene o establece el tipo de método de descompresión utilizado por el controlador para la descompresión automática de la respuesta de contenido HTTP. |
| AutomaticRedirection |
Obtiene o establece un valor que indica si el controlador debe seguir las respuestas de redireccionamiento HTTP. |
| CheckCertificateRevocationList |
Obtiene o establece un valor que indica si se va a comprobar la lista de revocación de certificados durante la validación de certificados SSL. |
| ClientCertificateOption |
Obtiene o establece un valor que indica si el certificado se selecciona automáticamente del almacén de certificados o si el autor de la llamada puede pasar un certificado de cliente específico. |
| ClientCertificates |
Obtiene una colección de certificados SSL de autenticación de cliente que el controlador usa para la autenticación de cliente si la ClientCertificateOption propiedad está establecida |
| CookieContainer |
Obtiene o establece el objeto contenedor de cookies administrado. Esta propiedad solo se usa cuando la CookieUsePolicy propiedad se establece en UseSpecifiedCookieContainer. De lo contrario, el SendAsync(HttpRequestMessage, CancellationToken) método producirá una excepción. |
| CookieUsePolicy |
Obtiene o establece un valor que indica cómo se deben administrar y usar las cookies. Los desarrolladores pueden optar por omitir las cookies, permitir que el controlador los administre automáticamente o controlarlos manualmente mediante un CookieContainer objeto . |
| DefaultProxyCredentials |
Cuando se usa el proxy predeterminado (sistema), obtiene o establece las credenciales usadas para enviar al servidor proxy predeterminado para la autenticación. |
| EnableMultipleHttp2Connections |
Obtiene o establece un valor que indica si se pueden establecer conexiones HTTP/2 adicionales al mismo servidor cuando se alcanza el número máximo de secuencias simultáneas en todas las conexiones existentes. |
| MaxAutomaticRedirections |
Obtiene o establece el número máximo de redirecciones HTTP permitidas. |
| MaxConnectionsPerServer |
Obtiene o establece el número máximo de conexiones TCP permitidas a un único servidor. |
| MaxResponseDrainSize |
Obtiene o establece la cantidad máxima de datos que se pueden purgar de las respuestas en bytes. |
| MaxResponseHeadersLength |
Obtiene o establece la longitud máxima, en kilobytes (1024 bytes), de los encabezados de respuesta. |
| PreAuthenticate |
Obtiene o establece un valor que indica si el controlador envía un encabezado authorization con la solicitud. |
| Properties |
Obtiene un diccionario grabable (es decir, un mapa) de propiedades personalizadas para las HttpClient solicitudes. El diccionario se inicializa vacío; Puede insertar y consultar pares clave-valor para los controladores personalizados y el procesamiento especial. |
| Proxy |
Obtiene o establece el proxy personalizado cuando la WindowsProxyUsePolicy propiedad se establece para usar un proxy personalizado. |
| ReceiveDataTimeout |
Obtiene o establece el tiempo de espera para recibir la parte de datos de una respuesta del servidor. |
| ReceiveHeadersTimeout |
Obtiene o establece el tiempo de espera para recibir los encabezados de una respuesta del servidor. |
| SendTimeout |
Obtiene o establece el tiempo de espera para enviar una solicitud. |
| ServerCertificateValidationCallback |
Obtiene o establece un método de devolución de llamada para validar el certificado de servidor. Esta devolución de llamada forma parte del protocolo de enlace SSL. |
| ServerCredentials |
Obtiene o establece las credenciales que va a usar el cliente para autenticarse en el servidor. |
| SslProtocols |
Obtiene o establece la colección de protocolos TLS/SSL admitidos por el cliente. |
| TcpKeepAliveEnabled |
Obtiene o establece un valor que indica si TCP keep-alive está habilitado. |
| TcpKeepAliveInterval |
Obtiene o establece el intervalo de mantenimiento de TCP. |
| TcpKeepAliveTime |
Obtiene o establece el tiempo de espera de mantenimiento de TCP. |
| WindowsProxyUsePolicy |
Obtiene o establece la configuración del proxy. Esta propiedad se puede establecer para deshabilitar el proxy, usar un proxy personalizado o usar la configuración de proxy de WinHTTP o WinInet en la máquina. |
Métodos
| Nombre | Description |
|---|---|
| Dispose() |
Libera los recursos no administrados y elimina los recursos administrados usados por .HttpMessageHandler (Heredado de HttpMessageHandler) |
| Dispose(Boolean) |
Libera los recursos no administrados usados por WinHttpHandlery, opcionalmente, elimina los recursos administrados. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| SendAsync(HttpRequestMessage, CancellationToken) |
Envía una solicitud HTTP como una operación asincrónica. |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |