@@ -46,8 +46,6 @@ public class WinHttpHandler : HttpMessageHandler
4646 internal static bool CertificateCachingAppContextSwitchEnabled { get ; } = AppContext . TryGetSwitch ( "System.Net.Http.UseWinHttpCertificateCaching" , out bool enabled ) && enabled ;
4747 private static readonly TimeSpan s_maxTimeout = TimeSpan . FromMilliseconds ( int . MaxValue ) ;
4848
49- private static readonly StringWithQualityHeaderValue s_gzipHeaderValue = new StringWithQualityHeaderValue ( "gzip" ) ;
50- private static readonly StringWithQualityHeaderValue s_deflateHeaderValue = new StringWithQualityHeaderValue ( "deflate" ) ;
5149 private static readonly Lazy < bool > s_supportsTls13 = new Lazy < bool > ( CheckTls13Support ) ;
5250 private static readonly TimeSpan s_cleanCachedCertificateTimeout = TimeSpan . FromMilliseconds ( ( int ? ) AppDomain . CurrentDomain . GetData ( "System.Net.Http.WinHttpCertificateCachingCleanupTimerInterval" ) ?? 60_000 ) ;
5351 private static readonly long s_staleTimeout = ( long ) ( s_cleanCachedCertificateTimeout . TotalSeconds * Stopwatch . Frequency / 1000 ) ;
@@ -56,7 +54,6 @@ public class WinHttpHandler : HttpMessageHandler
5654 private static StringBuilder ? t_requestHeadersBuilder ;
5755
5856 private readonly object _lockObject = new object ( ) ;
59- private bool _doManualDecompressionCheck ;
6057 private bool _automaticRedirection = HttpHandlerDefaults . DefaultAutomaticRedirection ;
6158 private int _maxAutomaticRedirections = HttpHandlerDefaults . DefaultMaxAutomaticRedirections ;
6259 private DecompressionMethods _automaticDecompression = HttpHandlerDefaults . DefaultAutomaticDecompression ;
@@ -715,8 +712,7 @@ private static WinHttpChunkMode GetChunkedModeForSend(HttpRequestMessage request
715712 private static void AddRequestHeaders (
716713 SafeWinHttpHandle requestHandle ,
717714 HttpRequestMessage requestMessage ,
718- CookieContainer ? cookies ,
719- DecompressionMethods manuallyProcessedDecompressionMethods )
715+ CookieContainer ? cookies )
720716 {
721717 Debug . Assert ( requestMessage . RequestUri != null ) ;
722718
@@ -732,26 +728,6 @@ private static void AddRequestHeaders(
732728 t_requestHeadersBuilder = requestHeadersBuffer = new StringBuilder ( ) ;
733729 }
734730
735- // Normally WinHttpHandler will let native WinHTTP add 'Accept-Encoding' request headers
736- // for gzip and/or default as needed based on whether the handler should do automatic
737- // decompression of response content. But on Windows 7, WinHTTP doesn't support this feature.
738- // So, we need to manually add these headers since WinHttpHandler still supports automatic
739- // decompression (by doing it within the handler).
740- if ( manuallyProcessedDecompressionMethods != DecompressionMethods . None )
741- {
742- if ( ( manuallyProcessedDecompressionMethods & DecompressionMethods . GZip ) == DecompressionMethods . GZip &&
743- ! requestMessage . Headers . AcceptEncoding . Contains ( s_gzipHeaderValue ) )
744- {
745- requestMessage . Headers . AcceptEncoding . Add ( s_gzipHeaderValue ) ;
746- }
747-
748- if ( ( manuallyProcessedDecompressionMethods & DecompressionMethods . Deflate ) == DecompressionMethods . Deflate &&
749- ! requestMessage . Headers . AcceptEncoding . Contains ( s_deflateHeaderValue ) )
750- {
751- requestMessage . Headers . AcceptEncoding . Add ( s_deflateHeaderValue ) ;
752- }
753- }
754-
755731 // Manually add cookies.
756732 if ( cookies != null && cookies . Count > 0 )
757733 {
@@ -941,8 +917,7 @@ private async Task StartRequestAsync(WinHttpRequestState state)
941917 AddRequestHeaders (
942918 state . RequestHandle ,
943919 state . RequestMessage ,
944- _cookieUsePolicy == CookieUsePolicy . UseSpecifiedCookieContainer ? _cookieContainer : null ,
945- _doManualDecompressionCheck ? _automaticDecompression : DecompressionMethods . None ) ;
920+ _cookieUsePolicy == CookieUsePolicy . UseSpecifiedCookieContainer ? _cookieContainer : null ) ;
946921
947922 uint proxyAuthScheme = 0 ;
948923 uint serverAuthScheme = 0 ;
@@ -1027,8 +1002,7 @@ private async Task StartRequestAsync(WinHttpRequestState state)
10271002 uint optionData = ( uint ) ( int ) _receiveDataTimeout . TotalMilliseconds ;
10281003 SetWinHttpOption ( state . RequestHandle , Interop . WinHttp . WINHTTP_OPTION_RECEIVE_TIMEOUT , ref optionData ) ;
10291004
1030- HttpResponseMessage responseMessage =
1031- WinHttpResponseParser . CreateResponseMessage ( state , _doManualDecompressionCheck ? _automaticDecompression : DecompressionMethods . None ) ;
1005+ HttpResponseMessage responseMessage = WinHttpResponseParser . CreateResponseMessage ( state ) ;
10321006 state . Tcs . TrySetResult ( responseMessage ) ;
10331007
10341008 // HttpStatusCode cast is needed for 308 Moved Permenantly, which we support but is not included in NetStandard status codes.
@@ -1372,22 +1346,7 @@ private void SetRequestHandleDecompressionOptions(SafeWinHttpHandle requestHandl
13721346 optionData |= Interop . WinHttp . WINHTTP_DECOMPRESSION_FLAG_DEFLATE ;
13731347 }
13741348
1375- try
1376- {
1377- SetWinHttpOption ( requestHandle , Interop . WinHttp . WINHTTP_OPTION_DECOMPRESSION , ref optionData ) ;
1378- }
1379- catch ( WinHttpException ex )
1380- {
1381- if ( ex . NativeErrorCode != ( int ) Interop . WinHttp . ERROR_WINHTTP_INVALID_OPTION )
1382- {
1383- throw ;
1384- }
1385-
1386- // We are running on a platform earlier than Win8.1 for which WINHTTP.DLL
1387- // doesn't support this option. So, we'll have to do the decompression
1388- // manually.
1389- _doManualDecompressionCheck = true ;
1390- }
1349+ SetWinHttpOption ( requestHandle , Interop . WinHttp . WINHTTP_OPTION_DECOMPRESSION , ref optionData ) ;
13911350 }
13921351 }
13931352
0 commit comments