diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/FeignBlockingLoadBalancerClient.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/FeignBlockingLoadBalancerClient.java index c7a59512..3b6932ee 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/FeignBlockingLoadBalancerClient.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/FeignBlockingLoadBalancerClient.java @@ -72,12 +72,15 @@ public class FeignBlockingLoadBalancerClient implements Client { } String reconstructedUrl = loadBalancerClient.reconstructURI(instance, originalUri) .toString(); - Request newRequest = Request.create(request.httpMethod(), reconstructedUrl, - request.headers(), request.body(), request.charset(), - request.requestTemplate()); + Request newRequest = buildRequest(request, reconstructedUrl); return delegate.execute(newRequest, options); } + protected Request buildRequest(Request request, String reconstructedUrl) { + return Request.create(request.httpMethod(), reconstructedUrl, request.headers(), + request.body(), request.charset(), request.requestTemplate()); + } + // Visible for Sleuth instrumentation public Client getDelegate() { return delegate; diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/RetryableFeignBlockingLoadBalancerClient.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/RetryableFeignBlockingLoadBalancerClient.java index 07319c31..d6bb1bf4 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/RetryableFeignBlockingLoadBalancerClient.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/loadbalancer/RetryableFeignBlockingLoadBalancerClient.java @@ -95,9 +95,7 @@ public class RetryableFeignBlockingLoadBalancerClient implements Client { } String reconstructedUrl = loadBalancerClient .reconstructURI(serviceInstance, originalUri).toString(); - feignRequest = Request.create(request.httpMethod(), reconstructedUrl, - request.headers(), request.body(), request.charset(), - request.requestTemplate()); + feignRequest = buildRequest(request, reconstructedUrl); } } if (feignRequest == null) { @@ -127,6 +125,11 @@ public class RetryableFeignBlockingLoadBalancerClient implements Client { }); } + protected Request buildRequest(Request request, String reconstructedUrl) { + return Request.create(request.httpMethod(), reconstructedUrl, request.headers(), + request.body(), request.charset(), request.requestTemplate()); + } + private RetryTemplate buildRetryTemplate(String serviceId, Request request, LoadBalancedRetryPolicy retryPolicy) { RetryTemplate retryTemplate = new RetryTemplate();