Browse Source

[New]新增流式输出简易日志

zhipeng 1 year ago
parent
commit
8b74960b40
2 changed files with 40 additions and 2 deletions
  1. 5 2
      lib/data/api/network_module.dart
  2. 35 0
      lib/utils/stream_dio_log_interceptor.dart

+ 5 - 2
lib/data/api/network_module.dart

@@ -1,4 +1,5 @@
 import 'package:dio/dio.dart';
+import 'package:electronic_assistant/utils/stream_dio_log_interceptor.dart';
 import 'package:pretty_dio_logger/pretty_dio_logger.dart';
 
 import '../consts/Constants.dart';
@@ -115,12 +116,14 @@ class _NetworkModule {
   }
 
   static Dio _createStreamDio() {
-    return Dio(BaseOptions(
+    Dio streamDio = Dio(BaseOptions(
       responseType: ResponseType.stream,
     ));
+    streamDio.interceptors.add(StreamDioLogInterceptor());
+    return streamDio;
   }
 }
 
 final defaultDio = _NetworkModule._createDefaultDio();
 
-final streamDio = _NetworkModule._createStreamDio();
+final streamDio = _NetworkModule._createStreamDio();

+ 35 - 0
lib/utils/stream_dio_log_interceptor.dart

@@ -0,0 +1,35 @@
+import 'package:dio/dio.dart';
+import 'package:flutter/foundation.dart';
+
+class StreamDioLogInterceptor extends Interceptor {
+  @override
+  void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
+    if (kDebugMode) {
+      debugPrint('Stream Request: method[${options.method}],'
+          ' url[${options.uri}],'
+          ' headers[${options.headers}]');
+    }
+    handler.next(options);
+  }
+
+  @override
+  void onError(DioException err, ErrorInterceptorHandler handler) {
+    if (kDebugMode) {
+      debugPrint('Stream Error: type[${err.type}],'
+          ' message[${err.message}],'
+          ' error[${err.error}],'
+          ' stackTrace[${err.stackTrace}]');
+    }
+    handler.next(err);
+  }
+
+  @override
+  void onResponse(Response response, ResponseInterceptorHandler handler) {
+    if (kDebugMode) {
+      debugPrint('Stream Response: header[${response.headers}],'
+          ' statusCode[${response.statusCode}],'
+          ' statusMessage[${response.statusMessage}]');
+    }
+    handler.next(response);
+  }
+}