Files
DMZJ_F/lib/requests/common/custom_interceptor.dart
2026-03-07 17:24:59 +08:00

54 lines
1.9 KiB
Dart
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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);
}
}