Q:

Retrofit: How to get request properties in requestInterceptor

I need to apply an Authorization header in a request interceptor, but I need to sign the request method, URI, and date.
Inside the request interceptor I get a RequestInterceptor.RequestFacade, which only has "setter methods"
Is there any way I can get request properties inside a request interceptor?

A:

Ah, did some more googling. The way to do this is to use a client wrapper. Observe...
public class SigningClient implements Client {
  final Client wrapped;

  public SigningClient(Client client) {
    wrapped = client;
  }

  @Override public Response execute(Request request) {
    Request newRequest = sign(request);
    return wrapped.execute(newRequest);
  }

  private void sign(Request request) {
    // magic
  }
}

Found it here: https://github.com/square/retrofit/issues/185#issuecomment-17819547

