Saltar al contenido

Cómo obtener el tiempo de respuesta/solicitud de API usando Retrofit 2

Este team de trabajo ha pasado horas buscando para dar espuestas a tu pregunta, te compartimos la solución por esto deseamos que sea de mucha apoyo.

Solución:

Puede calcular el tiempo total de ida y vuelta restando la marca de tiempo cuando se recibe la respuesta y la marca de tiempo cuando se envía la solicitud. Estos dos métodos del objeto Response le darán estos dos valores

  1. Response.sentRequestAtMillis()
  2. Response.receivedResponseAtMillis()

        RequestBody body = RequestBody.create(JSON, json);
        Request request = new Request.Builder()
                .url(url)
                .post(body)
                .build();
        Response response = client.newCall(request).execute();
        long tx = response.sentRequestAtMillis();
        long rx = response.receivedResponseAtMillis();
        System.out.println("response time : "+(rx - tx)+" ms");
    

Es fácil que puedas encontrar el receivedResponseAtMillis() y el sendResponseAtMillis() en el raw() parte de la respuesta y luego puedes calcular la diferencia

response.raw().receivedResponseAtMillis()
response.raw().sendResponseAtMillis()

Prueba esto

   if (BuildConfig.DEBUG) 
        HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
        httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
        httpClient.addInterceptor(httpLoggingInterceptor);
    

también agregar

compile 'com.squareup.okhttp3:logging-interceptor:3.2.0' 

al archivo gradle del módulo de tu aplicación

Ejemplo de respuesta:

Date: Fri, 12 Aug 2016 07:33:23 GMT
OkHttp-Sent-Millis: 1470987074283
OkHttp-Received-Millis: 1470987074422

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *