mirror of
				https://github.com/nsnail/Ocelot.git
				synced 2025-11-04 20:10:50 +08:00 
			
		
		
		
	Merge branch 'master' into develop
This commit is contained in:
		@@ -42,13 +42,27 @@ namespace Ocelot.Requester
 | 
			
		||||
            {
 | 
			
		||||
                return httpClient;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var httpclientHandler = new HttpClientHandler
 | 
			
		||||
            bool useCookies = context.DownstreamReRoute.HttpHandlerOptions.UseCookieContainer;
 | 
			
		||||
            HttpClientHandler httpclientHandler;
 | 
			
		||||
            // Dont' create the CookieContainer if UseCookies is not set ot the HttpClient will complain
 | 
			
		||||
            // under .Net Full Framework
 | 
			
		||||
            if (useCookies)
 | 
			
		||||
            {
 | 
			
		||||
                httpclientHandler = new HttpClientHandler
 | 
			
		||||
                {
 | 
			
		||||
                    AllowAutoRedirect = context.DownstreamReRoute.HttpHandlerOptions.AllowAutoRedirect,
 | 
			
		||||
                    UseCookies = context.DownstreamReRoute.HttpHandlerOptions.UseCookieContainer,
 | 
			
		||||
                    CookieContainer = new CookieContainer()
 | 
			
		||||
                };
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                httpclientHandler = new HttpClientHandler
 | 
			
		||||
                {
 | 
			
		||||
                    AllowAutoRedirect = context.DownstreamReRoute.HttpHandlerOptions.AllowAutoRedirect,
 | 
			
		||||
                    UseCookies = context.DownstreamReRoute.HttpHandlerOptions.UseCookieContainer,
 | 
			
		||||
                };
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (context.DownstreamReRoute.DangerousAcceptAnyServerCertificateValidator)
 | 
			
		||||
            {
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,24 @@ namespace Ocelot.Requester
 | 
			
		||||
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                var response = await httpClient.SendAsync(context.DownstreamRequest.ToHttpRequestMessage());
 | 
			
		||||
                var message = context.DownstreamRequest.ToHttpRequestMessage();
 | 
			
		||||
                /** 
 | 
			
		||||
                 * According to https://tools.ietf.org/html/rfc7231
 | 
			
		||||
                 * GET,HEAD,DELETE,CONNECT,TRACE
 | 
			
		||||
                 * Can have body but server can reject the request.
 | 
			
		||||
                 * And MS HttpClient in Full Framework actually rejects it.
 | 
			
		||||
                 * see #366 issue 
 | 
			
		||||
                **/
 | 
			
		||||
 | 
			
		||||
                if (message.Method == HttpMethod.Get ||
 | 
			
		||||
                    message.Method == HttpMethod.Head ||
 | 
			
		||||
                    message.Method == HttpMethod.Delete ||
 | 
			
		||||
                    message.Method == HttpMethod.Trace)
 | 
			
		||||
                {
 | 
			
		||||
                    message.Content = null;
 | 
			
		||||
                }
 | 
			
		||||
                _logger.LogDebug(string.Format("Sending {0}", message));
 | 
			
		||||
                var response = await httpClient.SendAsync(message);
 | 
			
		||||
                return new OkResponse<HttpResponseMessage>(response);
 | 
			
		||||
            }
 | 
			
		||||
            catch (TimeoutRejectedException exception)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user