debugInterceptor static method
Interceptor
debugInterceptor({})
Creates a debug interceptor that logs all requests and responses
This interceptor will log:
- Request method and URL
- Request headers
- Request body (if present)
- Query parameters (if present)
- Response status code and headers
- Response body (if present)
Implementation
static Interceptor debugInterceptor({
bool logRequest = true,
bool logResponse = true,
bool logHeaders = true,
bool logBody = true,
String prefix = '[Google Maps API]',
}) {
return InterceptorsWrapper(
onRequest: (options, handler) {
if (logRequest) {
print('🌐 $prefix ${options.method} ${options.uri}');
if (logHeaders) {
print('📋 $prefix Headers: ${options.headers}');
}
if (logBody && options.data != null) {
print('📦 $prefix Body: ${options.data}');
}
if (options.queryParameters.isNotEmpty) {
print('🔍 $prefix Query Params: ${options.queryParameters}');
}
}
handler.next(options);
},
onResponse: (response, handler) {
if (logResponse) {
print(
'✅ $prefix ${response.statusCode} ${response.requestOptions.uri}',
);
if (logHeaders) {
print('📋 $prefix Response Headers: ${response.headers}');
}
if (logBody && response.data != null) {
print('📦 $prefix Response Body: ${response.data}');
}
}
handler.next(response);
},
onError: (error, handler) {
print(
'❌ $prefix Error ${error.response?.statusCode} ${error.requestOptions.uri}',
);
if (error.response?.data != null) {
print('📦 $prefix Error Body: ${error.response?.data}');
}
handler.next(error);
},
);
}