다음을 통해 공유


PolicyHttpMessageHandler 클래스

정의

Policy로 둘러싸인 요청 처리를 실행하는 DelegatingHandler 구현입니다.

public ref class PolicyHttpMessageHandler : System::Net::Http::DelegatingHandler
public class PolicyHttpMessageHandler : System.Net.Http.DelegatingHandler
type PolicyHttpMessageHandler = class
    inherit DelegatingHandler
Public Class PolicyHttpMessageHandler
Inherits DelegatingHandler
상속
PolicyHttpMessageHandler

설명

이 메시지 처리기 구현은 일시적인 오류 처리 및 복원력을 위해 Polly 라이브러리에서 제공하는 정책 사용을 지원합니다.

여기에 제공된 설명서는 와 함께 IHttpClientFactoryPolly를 사용하기 위한 집중 지침입니다. Polly에 대한 신뢰할 수 있는 정보는 Polly 프로젝트 및 해당 설명서를 참조하세요.

PollyHttpClientBuilderExtensions 확장 메서드는 를 만드는 PolicyHttpMessageHandler편리하고 올바른 방법으로 설계되었습니다.

메서드는 AddPolicyHandler(IHttpClientBuilder, IAsyncPolicy<HttpResponseMessage>) 모든 종류의 정책에 대한 의 PolicyHttpMessageHandler 생성을 지원합니다. 여기에는 기본 요청이 먼저 실패할 필요가 없는 시간 제한 또는 캐시와 같은 비 반응형 정책이 포함됩니다.

PolicyHttpMessageHandler그리고 PollyHttpClientBuilderExtensions 편의 메서드는 제네릭을 허용 합니다 IAsyncPolicy`1 . 와 같은 TimeoutAsync``1(System.Int32)의 제네릭 메서드를 사용하여 제네릭 정책 인스턴스를 Policy 만들 수 있습니다.

기존의 제네릭 IAsyncPolicy이 아닌 를 조정하려면 다음과 같은 코드를 사용합니다.

policy.AsAsyncPolicy<HttpResponseMessage>()

메서드는 AddTransientHttpErrorPolicy(IHttpClientBuilder, Func<PolicyBuilder<HttpResponseMessage>,IAsyncPolicy<HttpResponseMessage>>) 연결 오류 또는 서버 오류(5XX HTTP 상태 코드)로 인해 실패하는 요청에 대한 정책 적용을 지원하는 설명된 편의 메서드입니다. 이러한 종류의 메서드는 재시도, Circuit-Breaker 또는 대체와 같은 사후 정책만 지원합니다. 이 메서드는 편의를 위해서만 제공됩니다. 요구 사항을 충족하지 않는 경우 필요에 따라 고유한 정책을 만드는 것이 좋습니다.

HttpClient는 를 통해 Timeout자체 시간 제한을 제공하므로 재시도 또는 시간 제한과 같은 정책을 함께 사용할 때는 주의해야 합니다. 다시 시도와 시간 제한을 Timeout 결합하는 경우 는 모든 시도에서 시간 제한으로 작동합니다. Polly 시간 제한 정책은 구성 시퀀스의 재시도 정책 후에 구성하여 시도당 시간 제한을 제공할 수 있습니다.

Polly에서 제공하는 모든 정책은 수명이 긴 방식으로 사용할 때 효율적이도록 설계되었습니다. 격벽 및 Circuit-Breaker 같은 특정 정책은 상태를 유지 관리하며 격벽 또는 Circuit-Breaker 상태를 공유하려는 호출 간에 범위가 지정되어야 합니다. 사용자 지정 시나리오에서 정책 및 메시지 처리기를 함께 사용할 때 올바른 수명을 보장합니다. 에서 제공하는 PollyHttpClientBuilderExtensions 확장 메서드는 정책에 긴 수명을 할당하고 처리기 회전 기능이 활성 상태일 때 사용할 수 있도록 설계되었습니다.

PolicyHttpMessageHandler 를 실행하기 전에 컨텍스트 HttpRequestMessagePolicy에 연결합니다(아직 없는 경우). 는 Context 및 내부 Policy 및 다른 메시지 처리기에서 사용하기 위해 정책에 제공됩니다.

생성자

PolicyHttpMessageHandler(Func<HttpRequestMessage,IAsyncPolicy<HttpResponseMessage>>)

PolicyHttpMessageHandler를 만듭니다.

PolicyHttpMessageHandler(IAsyncPolicy<HttpResponseMessage>)

PolicyHttpMessageHandler를 만듭니다.

속성

InnerHandler

HTTP 응답 메시지를 처리하는 내부 처리기를 가져오거나 설정합니다.

(다음에서 상속됨 DelegatingHandler)

메서드

Dispose()

관리되지 않는 리소스를 해제하고, HttpMessageHandler에서 사용하는 관리되는 리소스를 삭제합니다.

(다음에서 상속됨 HttpMessageHandler)
Dispose(Boolean)

DelegatingHandler에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 삭제할 수 있습니다.

(다음에서 상속됨 DelegatingHandler)
Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

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

기본 해시 함수로 작동합니다.

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

현재 인스턴스의 Type을 가져옵니다.

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

현재 Object의 단순 복사본을 만듭니다.

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

서버로 보낼 내부 처리기에 대한 HTTP 요청을 보냅니다.

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

비동기 작업으로 서버에 전송할 내부 처리기에 대한 HTTP 요청을 보냅니다.

SendCoreAsync(HttpRequestMessage, Context, CancellationToken)

요청 처리를 수행하기 위해 Policy 실행 내에서 호출됩니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상