@Override
                    public Observable<T> call(Server server) {
                        URI finalUri = reconstructURIWithServer(server, request.getUri());
                        S requestForServer = (S) request.replaceUri(finalUri);
                        try {
                            return Observable.just(AbstractLoadBalancerAwareClient.this.execute(requestForServer, requestConfig));
                        } 
                        catch (Exception e) {
                            return Observable.error(e);
                        }
                    }
This method should be used when the caller wants to dispatch the request to a server chosen by
the load balancer, instead of specifying the server in the request's URI. 
It calculates the final URI by calling {@link #reconstructURIWithServer(com.netflix.loadbalancer.Server, java.net.URI)}
and then calls {@link #executeWithLoadBalancer(ClientRequest, com.netflix.client.config.IClientConfig)}.

@param request request to be dispatched to a server chosen by the load balancer. The URI can be a partial
URI which does not contain the host name or the protocol.
ribbon-loadbalancer/src/main/java/com/netflix/client/AbstractLoadBalancerAwareClient.java