dio_curl_interceptor 0.0.4 copy "dio_curl_interceptor: ^0.0.4" to clipboard
dio_curl_interceptor: ^0.0.4 copied to clipboard

A Flutter package for logging curl with dio interceptor.

dio_curl_interceptor #

A Flutter package that provides a Dio interceptor for logging HTTP requests as cURL commands. This makes it easier to debug API calls and share them with others.

Features #

  • πŸ” Automatically converts Dio HTTP requests to cURL commands
  • πŸ“ Logs cURL commands to the console for easy debugging
  • βš™οΈ Configurable options for logging behavior
  • πŸ”„ Support for FormData conversion
  • 🎯 Minimal setup required

Getting started #

Add dio_curl_interceptor to your pubspec.yaml file:

dependencies:
  dio_curl_interceptor: ^0.0.3

Then run:

flutter pub get

Usage #

  • (1) First, import the package:
import 'package:dio_curl_interceptor/dio_curl_interceptor.dart';
  • (2) Add the interceptor to your Dio instance:

Simple Usage #

final dio = Dio();
dio.interceptors.add(CurlInterceptor());

Configuration Options #

You can customize the interceptor behavior with CurlOptions:

dio.interceptors.add(CurlInterceptor(
  curlOptions: CurlOptions(
    statusCode: true, // Show status codes in logs
    responseTime: true, // Show response timing
    convertFormData: true, // Convert FormData to JSON in cURL output
    onRequest: RequestDetails(visible: true),
    onResponse: ResponseDetails(visible: true, responseBody: true),
    onError: ErrorDetails(visible: true, responseBody: true),
    // Format response body with build-in formatters
    formatter: CurlFormatters.escapeNewlinesString,
  ),
));

Built-in Formatters #

The package includes CurlFormatters with built-in formatting utilities:

  • escapeNewlinesString: Formats strings by escaping newlines
// Example usage
final formatted = CurlFormatters.escapeNewlinesString("Hello\nWorld");
// Output: "Hello\nWorld"
  • readableMap: Converts maps to a readable console format
// Example usage
final map = {
  'name': 'John',
  'details': 'Line 1\nLine 2'
};
final formatted = CurlFormatters.readableMap(map);
// Output:
// name: John
// details: Line 1\nLine 2

Example Output #

When making a GET request with JSON data, The interceptor will log something like:

[Screenshot]

Additional information #

  • Repository: GitHub
  • Bug Reports: Please file issues on the GitHub repository
  • Feature Requests: Feel free to suggest new features through GitHub issues

Contributions are welcome! Please feel free to submit a Pull Request.

2
likes
0
points
1.24k
downloads

Publisher

verified publishervenhdev.me

Weekly Downloads

A Flutter package for logging curl with dio interceptor.

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

colored_logger, dio, flutter

More

Packages that depend on dio_curl_interceptor