code: public ClientRequest replaceUri(URI newURI) {
          ClientRequest req;
          try {
              req = (ClientRequest) this.clone();
          } catch (CloneNotSupportedException e) {
              req = new ClientRequest(this);
          }
          req.uri = newURI;
          return req;
      }
docs: Create a client request using a new URI. This is used by {@code com.netflix.client.AbstractLoadBalancerAwareClient#computeFinalUriWithLoadBalancer(ClientRequest)}.
  It first tries to clone the request and if that fails it will use the copy constructor {@link #ClientRequest(ClientRequest)}.
  Sub classes are recommended to override this method to provide more efficient implementation.
  
  @param newURI