Skip to content

Commit bc187e8

Browse files
authored
Merge pull request #4 from praves77/praveen
Use the request/response time not current Date.
2 parents 517bf27 + ab96d25 commit bc187e8

File tree

5 files changed

+43
-14
lines changed

5 files changed

+43
-14
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ For Maven users, add dependency to your `pom.xml`:
2424
<dependency>
2525
<groupId>com.moesif</groupId>
2626
<artifactId>moesif-okhttp-interceptor</artifactId>
27-
<version>1.0.3</version>
27+
<version>1.0.4</version>
2828
</dependency>
2929
```
3030
For Gradle users, add to your project's build.gradle file:
3131

3232
```gradle
3333
repositories {
3434
dependencies {
35-
implementation 'com.moesif:moesif-okhttp-interceptor:1.0.3'
35+
implementation 'com.moesif:moesif-okhttp-interceptor:1.0.4'
3636
}
3737
```
3838

pom.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.moesif</groupId>
88
<artifactId>moesif-okhttp-interceptor</artifactId>
9-
<version>1.0.3</version>
9+
<version>1.0.4</version>
1010
<packaging>jar</packaging>
1111
<name>moesif-okhttp-interceptor</name>
1212
<url>https://www.moesif.com</url>
@@ -120,7 +120,7 @@
120120
<version>3.0.0-M5</version>
121121
<configuration>
122122
<argLine>
123-
--illegal-access=permit
123+
--illegal-access=permit
124124
</argLine>
125125
</configuration>
126126
</plugin>
@@ -130,7 +130,7 @@
130130
<version>3.0.0-M5</version>
131131
<configuration>
132132
<argLine>
133-
--illegal-access=permit
133+
--illegal-access=permit
134134
</argLine>
135135
</configuration>
136136
</plugin>

src/main/java/com/moesif/sdk/okhttp3client/MoesifOkHttp3Interceptor.java

+25-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,11 @@
2121
import java.io.IOException;
2222
import java.io.InputStream;
2323
import java.util.Collection;
24+
import java.util.Date;
2425
import java.util.concurrent.atomic.AtomicInteger;
2526

27+
import java.time.Instant;
28+
2629
/**
2730
* MoesifOkHttp3Interceptor
2831
* This intrceptor can be used both as Application and Network interceptor
@@ -125,20 +128,40 @@ public Response intercept(Chain chain) throws IOException {
125128
if (connConfig.getEventFilterConfig().skip(request, response))
126129
return response;
127130

131+
// Initialize the request/response time from the response.
132+
Date requestDate = null;
133+
Date responseDate = null;
134+
try {
135+
Instant utcInstance = Instant.ofEpochMilli(response.sentRequestAtMillis()); // UTC
136+
requestDate = java.util.Date.from(utcInstance);
137+
} catch (Exception e) {
138+
requestDate = new Date();
139+
}
140+
try {
141+
Instant utcInstance = Instant.ofEpochMilli(response.receivedResponseAtMillis()); // UTC
142+
responseDate = java.util.Date.from(utcInstance);
143+
} catch (Exception e) {
144+
responseDate = new Date();
145+
}
146+
128147
IInterceptEventFilter filter = connConfig.getEventFilterConfig();
129148
final EventRequestModel loggedRequest =
130149
OkHttp3RequestMapper.createOkHttp3Request(
131150
request,
151+
requestDate,
132152
filter.getApiVersion(request, response).orElse(null),
133153
connConfig.getBaseUri(),
134-
connConfig.getMaxAllowedBodyBytesRequest());
154+
connConfig.getMaxAllowedBodyBytesRequest()
155+
);
135156

136157
final Connection connection = chain.connection();
137158
ResponseWrap respw = new ResponseWrap(response);
138159
final EventResponseModel loggedResponse =
139160
OkHttp3ResponseMapper.createOkHttp3Response(
140161
response,
141-
connection);
162+
responseDate,
163+
connection
164+
);
142165
if (!respw.hasNullBody()) {
143166
try {
144167
final ByteArrayOutputStream outputStream = genBAOutputStream(respw);

src/main/java/com/moesif/sdk/okhttp3client/models/OkHttp3RequestMapper.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public static EventRequestModel createOkHttp3Request(
4242
* Map okHttp3 Request to Moesif EventRequestModel
4343
*
4444
* @param request okHttp3 Request
45+
* @param requestDate request's Date.
4546
* @param apiVersion allow client to set outbound apiVersion eg:"uber-v1"
4647
* @param ipAddress IP addr where event occurred, If null, use local IPV4
4748
* @param maxAllowedBodyBytesRequest The maximum allowed number of bytes in request body
@@ -50,14 +51,15 @@ public static EventRequestModel createOkHttp3Request(
5051
*/
5152
public static EventRequestModel createOkHttp3Request(
5253
Request request,
54+
Date requestDate,
5355
String apiVersion,
5456
String ipAddress,
55-
Long maxAllowedBodyBytesRequest)
56-
throws IOException {
57+
Long maxAllowedBodyBytesRequest
58+
) throws IOException {
5759
if (StringUtils.isBlank(ipAddress))
5860
ipAddress = NetUtils.getIPAddress(true);
5961
EventRequestBuilder erb = new EventRequestBuilder()
60-
.time(new Date())
62+
.time(requestDate)
6163
.uri(request.url().toString())
6264
.verb(request.method())
6365
.apiVersion(apiVersion)

src/main/java/com/moesif/sdk/okhttp3client/models/OkHttp3ResponseMapper.java

+8-4
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,20 @@ public class OkHttp3ResponseMapper extends EventResponseModel {
1313

1414
public static EventResponseModel createOkHttp3Response(
1515
Response response,
16-
Connection connection) {
16+
Date responseDate,
17+
Connection connection
18+
) {
1719
String ipAddress = getIpAddr(connection);
18-
return createOkHttp3Response(response, ipAddress);
20+
return createOkHttp3Response(response, responseDate, ipAddress);
1921
}
2022

2123
public static EventResponseModel createOkHttp3Response(
2224
Response response,
23-
String ipAddress) {
25+
Date responseDate,
26+
String ipAddress
27+
) {
2428
return new EventResponseBuilder()
25-
.time(new Date())
29+
.time(responseDate)
2630
.status(response.code())
2731
.headers(CollectionUtils.flattenMultiMap(
2832
response.headers().toMultimap())

0 commit comments

Comments
 (0)