import 'package:dio/dio.dart'; import 'package:flutter_dmzj/app/log.dart'; class CustomInterceptor extends Interceptor { @override void onRequest(RequestOptions options, RequestInterceptorHandler handler) { options.extra["ts"] = DateTime.now().millisecondsSinceEpoch; super.onRequest(options, handler); } @override void onError(DioException err, ErrorInterceptorHandler handler) { var time = DateTime.now().millisecondsSinceEpoch - err.requestOptions.extra["ts"]; Log.e('''【HTTP请求错误】 耗时:${time}ms Request Method:${err.requestOptions.method} Response Code:${err.response?.statusCode} Request URL:${err.requestOptions.uri} Request Query:${err.requestOptions.queryParameters} Request Data:${err.requestOptions.data} Request Headers:${err.requestOptions.headers} Response Headers:${err.response?.headers.map} Response Data:${err.response?.data}''', err.stackTrace); super.onError(err, handler); } @override void onResponse(Response response, ResponseInterceptorHandler handler) { var time = DateTime.now().millisecondsSinceEpoch - response.requestOptions.extra["ts"]; if (response.requestOptions.uri.toString().contains(".txt")) { Log.i( '''【HTTP请求响应】 耗时:${time}ms Request Method:${response.requestOptions.method} Request Code:${response.statusCode} Request URL:${response.requestOptions.uri}''', ); return super.onResponse(response, handler); } Log.i( '''【HTTP请求响应】 耗时:${time}ms Request Method:${response.requestOptions.method} Request Code:${response.statusCode} Request URL:${response.requestOptions.uri} Request Query:${response.requestOptions.queryParameters} Request Data:${response.requestOptions.data} Request Headers:${response.requestOptions.headers} Response Headers:${response.headers.map} Response Data:${response.data}''', ); super.onResponse(response, handler); } }