4
4
// </copyright>
5
5
6
6
using System ;
7
- using System . Collections . Generic ;
8
- using System . Net ;
7
+ using System . Linq ;
9
8
using System . Net . Http ;
10
9
using System . Threading ;
11
10
using System . Threading . Tasks ;
@@ -17,15 +16,6 @@ namespace SendGrid.Helpers.Reliability
17
16
/// </summary>
18
17
public class RetryDelegatingHandler : DelegatingHandler
19
18
{
20
- private static readonly List < HttpStatusCode > RetriableServerErrorStatusCodes =
21
- new List < HttpStatusCode > ( )
22
- {
23
- HttpStatusCode . InternalServerError ,
24
- HttpStatusCode . BadGateway ,
25
- HttpStatusCode . ServiceUnavailable ,
26
- HttpStatusCode . GatewayTimeout ,
27
- } ;
28
-
29
19
private readonly ReliabilitySettings settings ;
30
20
31
21
/// <summary>
@@ -69,7 +59,7 @@ protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage
69
59
{
70
60
responseMessage = await base . SendAsync ( request , cancellationToken ) . ConfigureAwait ( false ) ;
71
61
72
- ThrowHttpRequestExceptionIfResponseCodeCanBeRetried ( responseMessage ) ;
62
+ this . ThrowHttpRequestExceptionIfResponseCodeCanBeRetried ( responseMessage ) ;
73
63
74
64
sent = true ;
75
65
}
@@ -101,9 +91,9 @@ protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage
101
91
return responseMessage ;
102
92
}
103
93
104
- private static void ThrowHttpRequestExceptionIfResponseCodeCanBeRetried ( HttpResponseMessage responseMessage )
94
+ private void ThrowHttpRequestExceptionIfResponseCodeCanBeRetried ( HttpResponseMessage responseMessage )
105
95
{
106
- if ( RetriableServerErrorStatusCodes . Contains ( responseMessage . StatusCode ) )
96
+ if ( this . settings . RetriableServerErrorStatusCodes . Contains ( responseMessage . StatusCode ) )
107
97
{
108
98
throw new HttpRequestException ( string . Format ( "Http status code '{0}' indicates server error" , responseMessage . StatusCode ) ) ;
109
99
}
0 commit comments