PolicyHttpMessageHandler 클래스

정의

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

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 라이브러리에서 제공하는 정책 사용을 지원합니다.

여기에 제공된 설명서는 Polly와 함께 IHttpClientFactory사용하기 위한 중요 지침입니다. Polly에 대한 신뢰할 수 있는 정보는 Polly 프로젝트 및 설명서(https://github.com/app-vnext/Polly)를 참조하세요.

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

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

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

기존의 제네릭이 아닌 코드를 조정하려면 제네릭 IAsyncPolicy이 아닌 코드를 다음으로 변환하는 IAsyncPolicy policyIAsyncPolicy`1코드를 사용합니다.

policy.AsAsyncPolicy<HttpResponseMessage>()

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

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

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

PolicyHttpMessageHandler 컨텍스트가 아직 없는 경우 컨텍스트 HttpRequestMessagePolicy실행하기 전에 연결합니다. 정책 Context 내부 및 다른 메시지 처리기에서 사용할 Policy 수 있도록 제공됩니다.

생성자

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

PolicyHttpMessageHandler를 만듭니다.

PolicyHttpMessageHandler(IAsyncPolicy<HttpResponseMessage>)

PolicyHttpMessageHandler를 만듭니다.

메서드

Name Description
SendAsync(HttpRequestMessage, CancellationToken)

비동기 작업으로 서버에 보낼 내부 처리기에 HTTP 요청을 보냅니다.

SendCoreAsync(HttpRequestMessage, Context, CancellationToken)

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

적용 대상