Nuestro equipo decide adoptar Retrofit 2.0 y estoy haciendo una investigación inicial al respecto. Soy un novato en esta biblioteca.
Me pregunto cómo usar interceptor
para agregar encabezados personalizados a través de Retrofits 2.0 en nuestra aplicación de Android. Hay muchos tutoriales sobre el uso interceptor
para agregar encabezados en Retrofit 1.X, pero dado que las API han cambiado mucho en la última versión, no estoy seguro de cómo adaptar esos métodos en la nueva versión. Además, Retrofit aún no ha actualizado su nueva documentación.
Por ejemplo, en los siguientes códigos, ¿cómo debo implementar la Interceptor
clase para agregar encabezados adicionales? Además, ¿qué es exactamente el objeto indocumentadoChain
? ¿Cuándo se intercept()
llamará?
OkHttpClient client = new OkHttpClient();
client.interceptors().add(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Response response = chain.proceed(chain.request());
// How to add extra headers?
return response;
}
});
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_API_URL)
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build();
/
y que sus URL de API no (stuff/post/whatever
)Respuestas:
Mira esto.
Kotlin
fuente
intercept()
se activa cada vez que se envía una solicitud desde la aplicación? ¿Podemos captar la respuesta intermedia para la redirección o simplemente obtenemos la respuesta final?client.interceptors()
. Esto parecenew OkHttpClient.Builder().addInterceptor(<Your Interceptor>).build()
Otra alternativa de la respuesta aceptada.
fuente
request.newBuilder().headers(moreHeaders).build()
¿mantendrá los encabezados originales?fuente
Puede encabezados usando Interceptores con sus métodos integrados como este
fuente
final Context context
en la lista de parámetros.context
aquí porque esto es lógica empresarial.