Skip to content

Commit 689be76

Browse files
authored
Merge pull request #13 from Instabug/fix/instabug-network-log
[MOB-7634] Fix/instabug network log
2 parents 2e6d1b4 + b0a43ee commit 689be76

File tree

3 files changed

+37
-11
lines changed

3 files changed

+37
-11
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## v2.1.0 (2022-01-06)
2+
3+
* Fixes network log compilation error.
4+
* Adds payload size for network log.
5+
16
## v2.0.1 (2021-09-29)
27

38
* Fixes an issue with APM network logger not reporting to the dashboard

lib/instabug_dio_interceptor.dart

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import 'package:dio/dio.dart';
2-
import 'package:instabug_flutter/models/network_data.dart';
32
import 'package:instabug_flutter/NetworkLogger.dart';
3+
import 'package:instabug_flutter/models/network_data.dart';
44

55
class InstabugDioInterceptor extends Interceptor {
66
static final Map<int, NetworkData> _requests = <int, NetworkData>{};
7-
7+
static final NetworkLogger _networklogger = NetworkLogger();
88
@override
99
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
1010
final NetworkData data = NetworkData(
@@ -19,15 +19,15 @@ class InstabugDioInterceptor extends Interceptor {
1919
void onResponse(
2020
Response<dynamic> response, ResponseInterceptorHandler handler) {
2121
final NetworkData data = _map(response);
22-
NetworkLogger.networkLog(data);
22+
_networklogger.networkLog(data);
2323
handler.next(response);
2424
}
2525

2626
@override
2727
void onError(DioError err, ErrorInterceptorHandler handler) {
2828
if (err.response != null) {
2929
final NetworkData data = _map(err.response!);
30-
NetworkLogger.networkLog(data);
30+
_networklogger.networkLog(data);
3131
}
3232

3333
handler.next(err);
@@ -46,20 +46,41 @@ class InstabugDioInterceptor extends Interceptor {
4646

4747
response.headers
4848
.forEach((String name, dynamic value) => responseHeaders[name] = value);
49+
50+
String responseContentType = '';
51+
if (responseHeaders.containsKey('content-type')) {
52+
responseContentType = responseHeaders['content-type'].toString();
53+
}
54+
55+
int requestBodySize = 0;
56+
if (response.requestOptions.headers.containsKey('content-length')) {
57+
requestBodySize =
58+
int.parse(response.requestOptions.headers['content-length'] ?? '0');
59+
} else if (response.requestOptions.data != null) {
60+
requestBodySize = response.requestOptions.data.toString().length;
61+
}
62+
63+
int responseBodySize = 0;
64+
if (responseHeaders.containsKey('content-length')) {
65+
responseBodySize = int.parse(responseHeaders['content-length'][0] ?? '0');
66+
} else if (response.data != null) {
67+
responseBodySize = response.data.toString().length;
68+
}
69+
4970
return data.copyWith(
5071
endTime: endTime,
51-
duration: endTime != null
52-
? endTime.millisecondsSinceEpoch -
53-
data.startTime.millisecondsSinceEpoch
54-
: 0,
72+
duration: endTime.difference(data.startTime).inMicroseconds,
5573
url: response.requestOptions.uri.toString(),
5674
method: response.requestOptions.method,
5775
requestBody: response.requestOptions.data.toString(),
5876
requestHeaders: response.requestOptions.headers,
59-
contentType: response.requestOptions.contentType,
77+
requestContentType: response.requestOptions.contentType,
78+
requestBodySize: requestBodySize,
6079
status: response.statusCode,
6180
responseBody: response.data.toString(),
6281
responseHeaders: responseHeaders,
82+
responseContentType: responseContentType,
83+
responseBodySize: responseBodySize,
6384
);
6485
}
6586
}

pubspec.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: instabug_dio_interceptor
22
description: This package is an add on to instabug_flutter. It intercepts any requests performed
33
with Dio Package and sends them to the report that will be sent to the dashboard.
4-
version: 2.0.1
4+
version: 2.1.0
55
homepage: https://github.com/Instabug/Instabug-Flutter#readme
66

77
environment:
@@ -11,7 +11,7 @@ dependencies:
1111
dio: ^4.0.0
1212
flutter:
1313
sdk: flutter
14-
instabug_flutter: ^10.8.0
14+
instabug_flutter: ^10.11.0
1515
dev_dependencies:
1616
flutter_test:
1717
sdk: flutter

0 commit comments

Comments
 (0)