title: OkHttp Interceptor using OkHttpClient without dependency cycle
body: <p>I'm using Retrofit and Dagger 2. I have implemented an OkHttp <code>Interceptor</code> for adding the oauth token. In the case there is no oauth token or the timestamp is invalid, I request a new one (via the Retrofit service) before the actual request is carried out.</p>
  
  <p>This creates a dependency cycle where the Retrofit service requires the <code>Interceptor</code> but the <code>Interceptor</code> also requires the Retrofit service (for retrieving the oauth token).</p>
  
  <p>Example for the <code>Interceptor</code> (for simplification it always requests the token via <code>restService#refreshAccessToken</code>):</p>
  
  <pre><code>@Override
  public Response intercept(Chain chain) throws IOException {
      Request originalRequest = chain.request();
      Request.Builder requestBuilder = originalRequest.newBuilder();
  
      String authHeader = "Bearer " + restService.refreshAccessToken();
      requestBuilder.addHeader("Authorization", authHeader);
      return chain.proceed(requestBuilder.build());
  }
  </code></pre>