Iniciar sesión en Retrofit 2.0
La versión anterior de Retrofit utiliza RestAdapter y tiene la disposición de habilitar los Logs. ¿Por qué se quita esta función en Retrofit 2.0 ?
Para habilitar el registro, tengo que hacer ..
- Adaptador de sincronización sin cuenta
- Cómo inhabilitar la solicitud de Volley de volver a intentarlo?
- Retrofit: 500 error de servidor interno
- ¿Cómo usar el retrofit como singleton mientras se usa el convertidor de gson?
- Notificaciones de la API REST de Google Drive no funcionan para cambios en la carpeta de aplicaciones
Retrofit retrofit = new Retrofit.Builder() .baseUrl(BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .build(); /** Handles Log */ retrofit.client().interceptors().add(new LoggingInterceptor()); class LoggingInterceptor implements Interceptor { @Override public Response intercept(Interceptor.Chain chain) throws IOException { Request request = chain.request(); long t1 = System.nanoTime(); Logger.d(String.format("Sending request %s on %s%n%s", request.url(), chain.connection(), request.headers())); Response response = chain.proceed(request); long t2 = System.nanoTime(); Logger.d(String.format("Received response for %s in %.1fms%n%s", response.request().url(), (t2 - t1) / 1e6d, response.headers())); // Logger.d(""+new String(response.body().bytes())); return response; }
Esta es la única solución para esto? La disposición anterior era muy útil …
- Cómo implementar OAuth 2.0 como autenticación basada en tokens para API de reposo a la que se accede desde aplicaciones web móviles y javascript
- ¿Cómo realizar una solicitud DELETE sin tipo de devolución o devolución de llamada?
- Error de Retrofit de Android al generar una solicitud
- Autenticación Digest con Volley? ¿Es posible?
- Solicitudes HTTP paralelas con Retrofit
- REST y SOAP webservice en android
- Google Cloud Speech API: Reconocimiento en tiempo real a través de REST
- Android Retrofit devolver estado 500 error interno del servidor
La intención de Retrofit es realizar el tipo seguro de / serialización. Probablemente ha caído las características que deben ser realizadas por el cliente http, como es el registro.
Razonablemente, el cliente http debe estar registrando las respuestas recibidas en lugar de Retrofit. Su pregunta es demasiado amplia, los chicos de Square deberían agregar más.
Para iniciar la retroadaptación 2 okhttp tiene el registrador siguiente:
private OkHttpClient getOkHttpClient() { HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); if (BuildConfig.LOG_HTTP_CALLS) { logging.setLevel(HttpLoggingInterceptor.Level.BODY); } return new OkHttpClient.Builder() .addInterceptor(logging).build(); }
Y la dependencia en build.gradle
es
compile 'com.squareup.okhttp3:logginginterceptor:2.1.0'
OkHttpClient okHttpClient = new OkHttpClient.Builder() .addInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request(); if (BuildConfig.DEBUG) { Log.e(getClass().getName(), request.method() + " " + request.url()); Log.e(getClass().getName(), "" + request.header("Cookie")); RequestBody rb = request.body(); Buffer buffer = new Buffer(); if (rb != null) rb.writeTo(buffer); LogUtils.LOGE(getClass().getName(), "Payload- " + buffer.readUtf8()); } return chain.proceed(request); } }) .readTimeout(60, TimeUnit.SECONDS) .connectTimeout(60, TimeUnit.SECONDS) .build(); iIdgardServices = new Retrofit.Builder() .baseUrl("Your Base URL") .client(okHttpClient) .addConverterFactory(GsonConverterFactory.create()) .build() .create(Your Service Interface .class);
Funciona para mi
private static final String HOST = Urls.HOST; private static final OkHttpClient.Builder mHttpClientBuilder = new OkHttpClient.Builder(); static { //add this line PS: `Level.NONE` is close mHttpClientBuilder.addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)) .addInterceptor(new EncryptInterceptor()) .connectTimeout(30, TimeUnit.SECONDS) .retryOnConnectionFailure(true) .addNetworkInterceptor(new TokenInterceptor()) .authenticator(new DefaultAuthenticator()); } public static <S> S createService(Class<S> serviceClass) { OkHttpClient client = mHttpClientBuilder.build(); Retrofit retrofit = mBuilder.client(client).build(); return retrofit.create(serviceClass); }
Cambiar el logcat a DEBUG
puede ver el registro!
- Problema al añadir un archivo en android
- Cómo hacer que todos los contenidos en la página de Android subir