¿Hay un reemplazo para el RequestInterceptor en Retrofit 2?

Me encontré con un problema que RequestInterceptor se ha eliminado de la Retrofit 2 . Anteriormente, mi constructor RestAdapter era el siguiente:

 private RestAdapter.Builder getBuilder(RequestInterceptor requestInterceptor) { RestAdapter.Builder builder = new RestAdapter.Builder() .setEndpoint(BuildConfig.SERVER_URL) .setClient(connectionClient) .setRequestInterceptor(requestInterceptor) .setConverter(new JacksonConverter()); return builder; } 

Por lo que sé, en este momento se recomienda utilizar interceptor de la biblioteca OkHttp lugar de RequestInterceptor .

No pude encontrar la aplicación ejemplar de este enfoque, por lo tanto, estar agradecido por cualquier ayuda en este asunto.

¡Gracias!

Intercepciones tienen que ser fijados a través de OkHttp en retrofit 2

 OkHttpClient okHttpClient = new OkHttpClient(); okHttpClient.interceptors().add(...) 

Y luego regístrelo en Retrofit

 Retrofit restAdapter = new Retrofit.Builder() .baseUrl(Constants.BASE_URL) .client(okHttpClient) .addConverterFactory(GsonConverterFactory.create()) .build(); 

Los interceptores se pueden agregar al propio cliente.

 okHttpClient.interceptors().add(...) 

Cuando está ejecutando esta línea. En realidad está agregando su propio interceptor en la lista existente de interceptores ya agregados en el cliente.

Puedes crear tu propio interceptor

 public class HttpLoggingInterceptor implements Interceptor { private final static String TAG = LogUtils.makeLogTag(HttpLoggingInterceptor.class); @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request(); LOGD(TAG, "********************** REQUEST START **********************"); LOGD(TAG, "REQUEST URL -> "+request.urlString()); LOGD(TAG, "REQUEST HEADERS -> "+request.headers()); LOGD(TAG, "********************** REQUEST END **********************"); Response response = chain.proceed(chain.request()); LOGD(TAG, "********************** RESPONSE START **********************"); LOGD(TAG, "RESPONSE CODE -> "+response.code()); LOGD(TAG, "RESPONSE HEADERS -> "+response.headers()); LOGD(TAG, "********************** RESPONSE END **********************"); return response; } 

}

Y después plugin / lo agrega al cliente en cualquier momento antes de construir servicio

 public static <S> S createService(Class<S> serviceClass) { okHttpClient.interceptors().add(new HttpLoggingInterceptor()); Retrofit retrofit = builder.client(okHttpClient).build(); return retrofit.create(serviceClass); } 
  • Uso de subscribeOn con Retrofit
  • Cómo POST JSON todo en bruto en el cuerpo de una solicitud de Retrofit?
  • ¿Existe algún patrón de desarrollo que pueda reemplazar un IntentService para las solicitudes de red?
  • .debounce () de RxJava interfiriendo con los hilos de mis observables y manejo de errores
  • Obtenga el código de estado de la respuesta utilizando Retrofit 2.0 y RxJava
  • Uso de Retrofit para acceder a una API con key / id
  • Renovación de la referencia $ ref de objeto deserializante de JSON a su copia original
  • RxJava: ¿Cómo reanudar el trabajo de un observable si se produce un cambio de configuración?
  • retrofit: trata con la propiedad que puede ser una cadena vacía o una matriz
  • Android: Realm + Retrofit 2 + Gson
  • MockWebServer y Retrofit con devolución de llamada
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.