This package helps in debugging API requests using dio HTTP networking package
Features
- Works with app requests types (GET, POST, DELETE, PUT, OPTIONS, ...)
- Works with app body types (Form data, Form URL encoded, Raw JSON, Raw text, ...)
- Compatibility with Postman
Getting started
attach the interceptor to a dio instance as follows, remember to keep the logging interceptor at last to log all headers & fields added from other interceptors
final dio = Dio();
dio.interceptors.add(DioCurlLoggerInterceptor());
Usage
You can also have some customization as you want, you can:
- Customize how to print the curl (by default using
log
fromdart:developer
) - You can determine whether to print the cURL
onRequest
oronResponse
&onError
see the following examples for more
// Customize how to print the curl
final dio = Dio();
// Write to a file for example:
final Directory directory = await getApplicationDocumentsDirectory();
final File file = File('${directory.path}/app_log.txt');
dio.interceptors.add(DioCurlLoggerInterceptor(onPrint: (final cURL) async {
print('cURL is: $cURL');
await file.writeAsString(cURL);
}));
// Determine when to print the cURL
final dio = Dio();
// [DEFAULT] this will print the cURL right before sending the the request to the server
dio.interceptors.add(DioCurlLoggerInterceptor(sendOnRequest: true));
// this will print the cURL once response arrive, either succeed or when exception happens
dio.interceptors.add(DioCurlLoggerInterceptor(sendOnRequest: false));
Contribution
All contributions are welcome!
If you like this project then please click on the 🌟 it'll be appreciated or if you wanna add more epic stuff you can submit your pull request and it'll be gladly accepted 🙆♂️
or if you found any bug or issue do not hesitate opening an issue on github