HttpClientHandler Class

Definition

Обработчик сообщений по умолчанию, используемый HttpClient в .NET Framework и .NET Core 2.0 и более ранней версии.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
Inheritance
HttpClientHandler
Derived

Examples

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);
}

В предыдущем примере кода используется точка входа async Task Main().The preceding code example uses an async Task Main() entry point. Для этого компонента C# требуется 7,1 или более поздняя версия.That feature requires C# 7.1 or later.

Remarks

Класс HttpClientHandler и классы, производные от него, позволяют разработчикам настраивать различные параметры, начиная от прокси-серверов до проверки подлинности.The HttpClientHandler class and classes derived from it enable developers to configure a variety of options ranging from proxies to authentication.

HttpClientHandler в .NET CoreHttpClientHandler in .NET Core

Начиная с .NET Core 2,1, реализация класса HttpClientHandler была изменена на основе стека межплатформенного протокола HTTP, используемого классом System.Net.Http.SocketsHttpHandler.Starting in .NET Core 2.1, the implementation of the HttpClientHandler class was changed to be based on the cross-platform HTTP protocol stack used by the System.Net.Http.SocketsHttpHandler class. До .NET Core 2,1 HttpClientHandler класс использовал старые стеки протоколов HTTP (WinHttpHandler в Windows и CurlHandler, внутренний класс, реализованный на основе встроенного компонента либкурл Linux в Linux).Prior to .NET Core 2.1, the HttpClientHandler class used older HTTP protocol stacks (WinHttpHandler on Windows and CurlHandler, an internal class implemented on top of Linux's native libcurl component, on Linux).

Вы можете настроить приложение для использования старых стеков протокола HTTP одним из следующих трех способов:You can configure your app to use the older HTTP protocol stacks in one of the following three ways:

  • Вызовите метод AppContext.SetSwitch:Call the AppContext.SetSwitch method:

    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
    
    AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", False)
    
  • Определите System.Net.Http.UseSocketsHttpHandler параметр в файле конфигурации . netcore. runtimeconfig. JSON :Define the System.Net.Http.UseSocketsHttpHandler switch in the .netcore.runtimeconfig.json configuration file:

    "runtimeOptions": {
      "configProperties": {
          "System.Net.Http.UseSocketsHttpHandler": false
      }
    }
    
  • Определите переменную среды с именем DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER и задайте для нее значение false или 0.Define an environment variable named DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER and set it to either false or 0.

Constructors

HttpClientHandler()

Создает экземпляр класса HttpClientHandler.Creates an instance of a HttpClientHandler class.

Properties

AllowAutoRedirect

Получает или задает значение, указывающее, должен ли обработчик следовать ответам перенаправления.Gets or sets a value that indicates whether the handler should follow redirection responses.

AutomaticDecompression

Получает или задает тип метода распаковки, используемого обработчиком для автоматической распаковки содержимого HTTP-ответа.Gets or sets the type of decompression method used by the handler for automatic decompression of the HTTP content response.

CheckCertificateRevocationList

Получает или задает значение, указывающее, проверяется ли сертификат по списку отзыва центра сертификации.Gets or sets a value that indicates whether the certificate is checked against the certificate authority revocation list.

ClientCertificateOptions

Возвращает или задает значение, указывающее, выбирается ли автоматически сертификат из хранилища сертификатов, или может ли вызывающий объект передавать определенный клиентский сертификат.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

Получает коллекцию сертификатов безопасности, связанных с запросами к серверу.Gets the collection of security certificates that are associated requests to the server.

CookieContainer

Получает или задает контейнер файлов cookie, используемый обработчиком для хранения файлов cookie сервера.Gets or sets the cookie container used to store server cookies by the handler.

Credentials

Получает или задает сведения об аутентификации, используемые данным обработчиком.Gets or sets authentication information used by this handler.

DangerousAcceptAnyServerCertificateValidator

Получает кэшированный делегат, который всегда возвращает true.Gets a cached delegate that always returns true.

DefaultProxyCredentials

Если используется прокси-сервер по умолчанию (системный), возвращает или задает учетные данные, отправляемые на прокси-сервер по умолчанию для проверки подлинности.When the default (system) proxy is being used, gets or sets the credentials to submit to the default proxy server for authentication. Прокси-сервер по умолчанию используется только если UseProxy задано значение true и Proxy задано значение null.The default proxy is used only when UseProxy is set to true and Proxy is set to null.

MaxAutomaticRedirections

Получает или задает максимальное количество перенаправлений, по которым переходит обработчик.Gets or sets the maximum number of redirects that the handler follows.

MaxConnectionsPerServer

Возвращает или задает максимально допустимое число одновременных подключений (для каждой конечной точки сервера) при выполнении запросов с помощью объекта HttpClient.Gets or sets the maximum number of concurrent connections (per server endpoint) allowed when making requests using an HttpClient object. Обратите внимание, что для каждой конечной точки сервера существует ограничение, например, значение 256 разрешает выполнять 256 одновременных подключений к http://www.adatum.com/ и еще 256 подключений — к 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

Получает или задает максимальный размер буфера содержимого запросов, используемого обработчиком.Gets or sets the maximum request content buffer size used by the handler.

MaxResponseHeadersLength

Возвращает или задает максимальную длину заголовков ответов, выраженную в килобайтах (1024 байта).Gets or sets the maximum length, in kilobytes (1024 bytes), of the response headers. Например, если значение равно 64, для максимальной длины заголовков ответов разрешено использовать 65536 байт.For example, if the value is 64, then 65536 bytes are allowed for the maximum response headers' length.

PreAuthenticate

Возвращает или задает значение, которое указывает, отправляет ли обработчик заголовок Authorization вместе с запросом.Gets or sets a value that indicates whether the handler sends an Authorization header with the request.

Properties

Возвращает доступный для записи словарь (т. е. карту) настраиваемых свойств запросов HttpClient.Gets a writable dictionary (that is, a map) of custom properties for the HttpClient requests. Словарь инициализируется пустым. Можно вставить и запросить пары "ключ-значение" для пользовательских обработчиков и особой обработки.The dictionary is initialized empty; you can insert and query key-value pairs for your custom handlers and special processing.

Proxy

Получает или задает сведения о прокси-сервере, используемом обработчиком.Gets or sets proxy information used by the handler.

ServerCertificateCustomValidationCallback

Возвращает или задает метод обратного вызова для проверки сертификата сервера.Gets or sets a callback method to validate the server certificate.

SslProtocols

Возвращает или задает протокол TLS/SSL, используемый объектами HttpClient, которые управляются объектом HttpClientHandler.Gets or sets the TLS/SSL protocol used by the HttpClient objects managed by the HttpClientHandler object.

SupportsAutomaticDecompression

Получает значение, указывающее, поддерживает ли обработчик автоматическую распаковку содержимого ответов.Gets a value that indicates whether the handler supports automatic response content decompression.

SupportsProxy

Получает значение, указывающее, поддерживает ли обработчик параметры прокси-сервера.Gets a value that indicates whether the handler supports proxy settings.

SupportsRedirectConfiguration

Получает значение, указывающее, поддерживает ли обработчик параметры конфигурации для свойств AllowAutoRedirect и MaxAutomaticRedirections.Gets a value that indicates whether the handler supports configuration settings for the AllowAutoRedirect and MaxAutomaticRedirections properties.

UseCookies

Получает или задает значение, указывающее, использует ли обработчик свойство CookieContainer для хранения файлов cookie сервера и использует ли он такие файлы cookie при отправке запросов.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

Получает или задает значение, которое управляет отправкой обработчиком учетных данных по умолчанию вместе с запросами.Gets or sets a value that controls whether default credentials are sent with requests by the handler.

UseProxy

Получает или задает значение, указывающее, использует ли обработчик прокси-сервер для отправки запросов.Gets or sets a value that indicates whether the handler uses a proxy for requests.

Methods

Dispose()

Освобождает неуправляемые ресурсы и удаляет управляемые ресурсы, используемые объектом HttpMessageHandler.Releases the unmanaged resources and disposes of the managed resources used by the HttpMessageHandler.

(Inherited from HttpMessageHandler)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом HttpClientHandler, и опционально удаляет управляемые ресурсы.Releases the unmanaged resources used by the HttpClientHandler and optionally disposes of the managed resources.

Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
SendAsync(HttpRequestMessage, CancellationToken)

Создает экземпляр HttpResponseMessage на основе сведений, предоставленных в HttpRequestMessage, в качестве неблокируемой операции.Creates an instance of HttpResponseMessage based on the information provided in the HttpRequestMessage as an operation that will not block.

ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Applies to

See also