public FluentHttpClient Build() { if (_baseUrl == null) { _baseUrl = new Uri(""); } var fluentHttpClient = new FluentHttpClient(this) { RawHttpClient = BuildHttpClient(this) }; if (_middlewares == null || !_middlewares.Any()) { return(fluentHttpClient); } FluentHttpClientRequestDelegate invokeDelegate = fluentHttpClient.RawHttpClientSendAsync; _requestDelegate = CreateMiddlewares(invokeDelegate); ; return(fluentHttpClient); }
private FluentHttpClientRequestDelegate CreateMiddlewares(FluentHttpClientRequestDelegate invokeDelegate) { foreach (var middlewareConfig in _middlewares) { object[] constructorArgs; if (middlewareConfig.Args == null) { constructorArgs = new object[] { invokeDelegate }; } else { constructorArgs = new object[middlewareConfig.Args.Length + 1]; constructorArgs[0] = invokeDelegate; Array.Copy(middlewareConfig.Args, 0, constructorArgs, 1, middlewareConfig.Args.Length); } var middleware = (IFluentHttpClientMiddleware)Activator.CreateInstance(middlewareConfig.Middleware, constructorArgs); invokeDelegate = middleware.InvokeAsync; } return(invokeDelegate); }
public Nlog2FluentHttpClientMiddleware(FluentHttpClientRequestDelegate next) : base(next) { }
private FluentHttpClient(IFluentHttpClientBuilder httpClientBuilder) { _requestDelegate = httpClientBuilder.RequestDelegate; }
protected FluentHttpClientMiddleware(FluentHttpClientRequestDelegate next) { Next = next; }