private string BuildBaseUrl(string baseUrl) { if (!baseUrl.StartsWith("http") && baseUrl != "") { baseUrl = $"http://{baseUrl}"; } if (!string.IsNullOrWhiteSpace(BaseUri)) { if (baseUrl.EndsWith("/")) { baseUrl = baseUrl.TrimEnd('/'); } if (BaseUri.StartsWith("/")) { baseUrl += BaseUri; } else { baseUrl += "/" + BaseUri; } } if (baseUrl.EndsWith("/")) { baseUrl = baseUrl.TrimEnd('/'); } return(baseUrl); }
public FeignClientHttpProxy(IFeignOptions feignOptions, IServiceDiscovery serviceDiscovery, ICacheProvider cacheProvider = null, ILoggerFactory loggerFactory = null) { FeignOptions = feignOptions; _globalFeignClientPipeline = FeignOptions.FeignClientPipeline as GlobalFeignClientPipeline; _serviceIdFeignClientPipeline = _globalFeignClientPipeline?.GetServicePipeline(ServiceId); _serviceFeignClientPipeline = _globalFeignClientPipeline?.GetServicePipeline <TService>(); _logger = loggerFactory?.CreateLogger(typeof(FeignClientHttpProxy <TService>)); ServiceDiscoveryHttpClientHandler <TService> serviceDiscoveryHttpClientHandler = new ServiceDiscoveryHttpClientHandler <TService>(this, serviceDiscovery, cacheProvider, _logger); if (FeignOptions.AutomaticDecompression.HasValue) { serviceDiscoveryHttpClientHandler.AutomaticDecompression = feignOptions.AutomaticDecompression.Value; } //serviceDiscoveryHttpClientHandler.ShouldResolveService = string.IsNullOrWhiteSpace(Url); serviceDiscoveryHttpClientHandler.ShouldResolveService = Url == null; serviceDiscoveryHttpClientHandler.AllowAutoRedirect = false; HttpClient = new FeignHttpClient(new FeignDelegatingHandler(serviceDiscoveryHttpClientHandler)); string baseUrl = serviceDiscoveryHttpClientHandler.ShouldResolveService ? ServiceId ?? "" : Url; if (!baseUrl.StartsWith("http") && baseUrl != "") { baseUrl = $"http://{baseUrl}"; } if (!string.IsNullOrWhiteSpace(BaseUri)) { if (baseUrl.EndsWith("/")) { baseUrl = baseUrl.TrimEnd('/'); } if (BaseUri.StartsWith("/")) { baseUrl += BaseUri; } else { baseUrl += "/" + BaseUri; } } if (baseUrl.EndsWith("/")) { baseUrl = baseUrl.TrimEnd('/'); } BaseUrl = baseUrl; InitializingEventArgs <TService> initializingEventArgs = new InitializingEventArgs <TService>(this); initializingEventArgs.HttpClient = HttpClient; OnInitializing(initializingEventArgs); HttpClient = initializingEventArgs.HttpClient; if (HttpClient == null) { throw new ArgumentNullException(nameof(HttpClient)); } }
public FeignClientHttpProxy(IFeignOptions feignOptions, IServiceDiscovery serviceDiscovery, IServiceCacheProvider serviceCacheProvider, ILoggerFactory loggerFactory) { _feignOptions = feignOptions; //_logger = loggerFactory?.CreateLogger(this.GetType()); _logger = loggerFactory?.CreateLogger(typeof(FeignClientHttpProxy)); _globalFeignClientPipeline = _feignOptions?.FeignClientPipeline as GlobalFeignClientPipeline; _serviceIdFeignClientPipeline = _globalFeignClientPipeline?.GetServicePipeline(ServiceId); ServiceDiscoveryHttpClientHandler serviceDiscoveryHttpClientHandler = new ServiceDiscoveryHttpClientHandler(this, serviceDiscovery, serviceCacheProvider, _logger); serviceDiscoveryHttpClientHandler.ShouldResolveService = string.IsNullOrWhiteSpace(Url); serviceDiscoveryHttpClientHandler.AllowAutoRedirect = false; HttpClient = new HttpClient(serviceDiscoveryHttpClientHandler); string baseUrl = serviceDiscoveryHttpClientHandler.ShouldResolveService ? ServiceId ?? "" : Url; if (!baseUrl.StartsWith("http")) { baseUrl = $"http://{baseUrl}"; } if (!string.IsNullOrWhiteSpace(BaseUri)) { if (baseUrl.EndsWith("/")) { baseUrl = baseUrl.TrimEnd('/'); } if (BaseUri.StartsWith("/")) { baseUrl += BaseUri; } else { baseUrl += "/" + BaseUri; } } if (baseUrl.EndsWith("/")) { baseUrl = baseUrl.TrimEnd('/'); } BaseUrl = baseUrl; InitializingEventArgs initializingEventArgs = new InitializingEventArgs(this); initializingEventArgs.HttpClient = HttpClient; OnInitializing(initializingEventArgs); HttpClient = initializingEventArgs.HttpClient; if (HttpClient == null) { throw new ArgumentNullException(nameof(HttpClient)); } }
public FeignClientProxyService(FeignOptions feignOptions, IServiceDiscovery serviceDiscovery, IDistributedCache distributedCache, ILoggerFactory loggerFactory) { //_logger = loggerFactory?.CreateLogger(this.GetType()); _feignOptions = feignOptions; _logger = loggerFactory?.CreateLogger(typeof(FeignClientProxyService)); _globalFeignClientPipeline = _feignOptions?.FeignClientPipeline as GlobalFeignClientPipelineBuilder;; ServiceDiscoveryHttpClientHandler serviceDiscoveryHttpClientHandler = new ServiceDiscoveryHttpClientHandler(serviceDiscovery, this, _globalFeignClientPipeline, distributedCache, _logger); serviceDiscoveryHttpClientHandler.ShouldResolveService = string.IsNullOrWhiteSpace(Url); serviceDiscoveryHttpClientHandler.AllowAutoRedirect = false; _httpClient = new HttpClient(serviceDiscoveryHttpClientHandler); string baseUrl = serviceDiscoveryHttpClientHandler.ShouldResolveService ? ServiceId ?? "" : Url; if (!baseUrl.StartsWith("http")) { baseUrl = $"http://{baseUrl}"; } if (!string.IsNullOrWhiteSpace(BaseUri)) { if (baseUrl.EndsWith("/")) { baseUrl = baseUrl.TrimEnd('/'); } if (BaseUri.StartsWith("/")) { baseUrl += BaseUri; } else { baseUrl += "/" + BaseUri; } } if (baseUrl.EndsWith("/")) { baseUrl = baseUrl.TrimEnd('/'); } _baseUrl = baseUrl; }