HttpClientHandler 클래스

정의

.NET Framework 및.NET Core 2.0 이전 버전의 HttpClient에서 사용되는 기본 메시지 처리기입니다.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
상속
HttpClientHandler
파생

예제

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();
   client.Dispose();
}

위의 코드 예제에서는 진입점을 사용 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.

설명

HttpClientHandler개발자는이 클래스에서 파생 된 클래스를 사용 하 여 프록시에서 인증에 이르는 다양 한 옵션을 구성할 수 있습니다.The HttpClientHandler class and classes derived from it enable developers to configure a variety of options ranging from proxies to authentication.

.NET Core의 HttpClientHandlerHttpClientHandler 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 프로토콜 스택 (linux의 경우 WinHttpHandler linux의 CurlHandler 기본 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.js 에서 스위치를 정의 합니다.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.

생성자

HttpClientHandler()

HttpClientHandler 클래스의 인스턴스를 만듭니다.Creates an instance of a HttpClientHandler class.

속성

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

처리기에서 서버 쿠키를 저장하는 데 사용되는 쿠키 컨테이너를 가져오거나 설정합니다.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. 기본 프록시는 UseProxytrue로 설정되고 Proxynull로 설정된 경우에만 사용됩니다.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

ph x="1" /> 개체를 사용하여 요청을 수행하는 경우 허용되는 동시 연결의 최대 수(서버 엔드포인트당)를 가져오거나 설정합니다.Gets or sets the maximum number of concurrent connections (per server endpoint) allowed when making requests using an HttpClient object. 서버 엔드포인트를 기준으로 제한되므로 예를 들어, 256이라는 값은 http://www.adatum.com/에 256개의 동시 연결을 허용하고 http://www.adventure-works.com/에 추가로 256개의 동시 연결을 허용합니다.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

처리기가 요청과 함께 인증 헤더를 보낼 것인지 여부를 나타내는 값을 가져오거나 설정합니다.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

HttpClientHandler 개체에 의해 관리되는 HttpClient 개체에서 사용하는 TLS/SSL 프로토콜을 가져오거나 설정합니다.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

처리기에서 AllowAutoRedirectMaxAutomaticRedirections 속성에 대한 구성 설정을 지원하는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the handler supports configuration settings for the AllowAutoRedirect and MaxAutomaticRedirections properties.

UseCookies

처리기에서 CookieContainer 속성을 사용하여 서버 쿠키를 저장하고 요청을 보낼 때 이러한 쿠키를 사용할지 여부를 나타내는 값을 가져오거나 저장합니다.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.

메서드

Dispose()

관리되지 않는 리소스를 해제하고, HttpMessageHandler에서 사용하는 관리되는 리소스를 삭제합니다.Releases the unmanaged resources and disposes of the managed resources used by the HttpMessageHandler.

(다음에서 상속됨 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.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
Send(HttpRequestMessage, CancellationToken)

HttpRequestMessage에 제공된 정보를 기반으로 HttpResponseMessage의 인스턴스를 만듭니다.Creates an instance of HttpResponseMessage based on the information provided in the HttpRequestMessage.

Send(HttpRequestMessage, CancellationToken)

파생 클래스에서 재정의된 경우 지정된 요청 및 취소 토큰을 사용하여 HTTP 요청을 보냅니다.When overridden in a derived class, sends an HTTP request with the specified request and cancellation token. 그렇지 않으면 NotSupportedException이 throw됩니다.Otherwise, throws a NotSupportedException.

(다음에서 상속됨 HttpMessageHandler)
SendAsync(HttpRequestMessage, CancellationToken)

HttpRequestMessage에 제공된 정보를 기반으로 HttpResponseMessage의 인스턴스를 차단되지 않을 작업으로 만듭니다.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.

(다음에서 상속됨 Object)

적용 대상