rhttp_curl_logger 0.1.0+1 copy "rhttp_curl_logger: ^0.1.0+1" to clipboard
rhttp_curl_logger: ^0.1.0+1 copied to clipboard

An interceptor for rhttp that prints the request as a single line cURL command

example/lib/main.dart

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:rhttp/rhttp.dart';
import 'package:rhttp_curl_logger/rhttp_curl_logger.dart';

Future<void> main() async {
  await Rhttp.init();

  runApp(const App());
}

class App extends StatefulWidget {
  const App({super.key});

  @override
  State<App> createState() => _AppState();
}

class _AppState extends State<App> {
  @override
  void initState() {
    super.initState();
    _initRhttp();
  }

  late final RhttpClient _client;

  Future<void> _initRhttp() async {
    _client = await RhttpClient.create(
      interceptors: [
        SimpleInterceptor(
          beforeRequest: (request) async {
            return Interceptor.next(
              request.addHeader(
                name: HttpHeaderName.contentType,
                value: 'application/json',
              ),
            );
          },
        ),

        // Add RhttpCurlLogger
        if (kDebugMode)
          RhttpCurlLogger(
            useDoubleQuotes: true, // default
            escapeQuotesInBody: true, // default
            multiline: false, // default
            logName: 'curl_log', // default
            logger: null, // default
          ),
      ],
    );
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: FilledButton(onPressed: _request, child: Text('Get')),
        ),
      ),
    );
  }

  Future<void> _request() async {
    await _client.post(
      'https://jsonplaceholder.typicode.com/posts',
      query: {'foo': 'bar', 'baz': '1'},
      body: HttpBody.json({'title': 'foo', 'body': 'bar', 'userId': 1}),
    );
  }
}
1
likes
160
points
10
downloads

Publisher

verified publisheralbinpk.dev

Weekly Downloads

An interceptor for rhttp that prints the request as a single line cURL command

Homepage
Repository (GitHub)
View/report issues
Contributing

Topics

#curl #rhttp #interceptor #logging #rhttp-curl-logger

Documentation

API reference

License

MIT (license)

Dependencies

flutter, rhttp

More

Packages that depend on rhttp_curl_logger