private static HttpMessageHandler CreatePipeline(HttpMessageHandler innerHandler, IEnumerable <HttpMessageHandler> handlers) { var httpMessageHandler = innerHandler; foreach (var handler in handlers.Reverse()) { if (handler == null) { throw new ArgumentNullException(nameof(handlers), "Delegating Handler Array Contains Null Item"); } var delegatingHandler = handler as DelegatingHandler; if (delegatingHandler == null) { delegatingHandler = new HttpMessageHandlerToDelegatingHandler(handler); } else { if (delegatingHandler.InnerHandler != null) { throw new ArgumentException("Delegating Handler Array Has Non Null Inner Handler", nameof(handlers)); } delegatingHandler.InnerHandler = httpMessageHandler; } httpMessageHandler = delegatingHandler; } return(httpMessageHandler); }
internal HttpMessageHandler CreatePipeline() { var allHandlers = Pipeline.Except(Pipeline.OfType <HttpClientHandler>()); HttpMessageHandler primaryHandler = Pipeline.OfType <HttpClientHandler>().SingleOrDefault() ?? new HttpClientHandler(); foreach (var handler in allHandlers.Reverse()) { if (handler == null) { throw new ArgumentNullException(nameof(Pipeline), "Delegating Handlers Contains null Item"); } if (!(handler is DelegatingHandler delegatingHandler)) { delegatingHandler = new HttpMessageHandlerToDelegatingHandler(handler); }