From c5afe250db61c15a9ef8166eab95432af823b639 Mon Sep 17 00:00:00 2001 From: Sihan Zhu Date: Fri, 12 Aug 2016 16:36:36 +0800 Subject: [PATCH 1/2] Use OkHttp's interceptor to measure request time. --- .../java/com/qiniu/android/http/Client.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/library/src/main/java/com/qiniu/android/http/Client.java b/library/src/main/java/com/qiniu/android/http/Client.java index d9eccb783..9160ce4fc 100644 --- a/library/src/main/java/com/qiniu/android/http/Client.java +++ b/library/src/main/java/com/qiniu/android/http/Client.java @@ -79,9 +79,11 @@ public List lookup(String hostname) throws UnknownHostException { @Override public okhttp3.Response intercept(Chain chain) throws IOException { Request request = chain.request(); - + final long before = System.currentTimeMillis(); okhttp3.Response response = chain.proceed(request); - IpTag tag = (IpTag) request.tag(); + final long after = System.currentTimeMillis(); + + ResponseTag tag = (ResponseTag) request.tag(); String ip = ""; try { ip = chain.connection().socket().getRemoteSocketAddress().toString(); @@ -89,6 +91,7 @@ public okhttp3.Response intercept(Chain chain) throws IOException { e.printStackTrace(); } tag.ip = ip; + tag.duration = after - before; return response; } }); @@ -156,13 +159,11 @@ public void run() { }; requestBuilder.header("User-Agent", UserAgent.instance().toString()); - final long start = System.currentTimeMillis(); - IpTag tag = new IpTag(); + ResponseTag tag = new ResponseTag(); httpClient.newCall(requestBuilder.tag(tag).build()).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { e.printStackTrace(); - long duration = (System.currentTimeMillis() - start) / 1000; int statusCode = ResponseInfo.NetworkError; String msg = e.getMessage(); if (e instanceof CancellationHandler.CancellationException) { @@ -178,16 +179,15 @@ public void onFailure(Call call, IOException e) { } HttpUrl u = call.request().url(); - ResponseInfo info = new ResponseInfo(null, statusCode, "", "", "", u.host(), u.encodedPath(), "", u.port(), duration, 0, e.getMessage()); + ResponseInfo info = new ResponseInfo(null, statusCode, "", "", "", u.host(), u.encodedPath(), "", u.port(), 0, 0, e.getMessage()); complete.complete(info, null); } @Override public void onResponse(Call call, okhttp3.Response response) throws IOException { - long duration = (System.currentTimeMillis() - start) / 1000; - IpTag tag = (IpTag) response.request().tag(); - onRet(response, tag.ip, duration, complete); + ResponseTag tag = (ResponseTag) response.request().tag(); + onRet(response, tag.ip, tag.duration, complete); } }); } @@ -304,7 +304,8 @@ public void run() { } - private static class IpTag { + private static class ResponseTag { public String ip = null; + public Long duration = null; } } From 4806adaba8e90950b904b32e74501be823d10460 Mon Sep 17 00:00:00 2001 From: Sihan Zhu Date: Sun, 14 Aug 2016 13:18:08 +0800 Subject: [PATCH 2/2] Update Long with long --- library/src/main/java/com/qiniu/android/http/Client.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/main/java/com/qiniu/android/http/Client.java b/library/src/main/java/com/qiniu/android/http/Client.java index 9160ce4fc..c34f21d8a 100644 --- a/library/src/main/java/com/qiniu/android/http/Client.java +++ b/library/src/main/java/com/qiniu/android/http/Client.java @@ -306,6 +306,6 @@ public void run() { private static class ResponseTag { public String ip = null; - public Long duration = null; + public long duration = null; } }