cronet_http 1.3.2 copy "cronet_http: ^1.3.2" to clipboard
cronet_http: ^1.3.2 copied to clipboard

PlatformAndroid

An Android Flutter plugin that provides access to the Cronet HTTP client.

pub package package publisher

An Android Flutter plugin that provides access to the Cronet HTTP client.

Cronet is available as part of Google Play Services and as a standalone embedded library.

This package depends on Google Play Services for its Cronet implementation. To use the embedded version of Cronet without Google Play Services, see Use embedded Cronet.

Motivation #

Using Cronet, rather than the socket-based dart:io HttpClient implementation, has several advantages:

  1. It automatically supports Android platform features such as HTTP proxies.
  2. It supports configurable caching.
  3. It supports more HTTP features such as HTTP/3.

Using #

The easiest way to use this library is via the high-level interface defined by package:http Client.

This approach allows the same HTTP code to be used on all platforms, while still allowing platform-specific setup.

import 'package:cronet_http/cronet_http.dart';
import 'package:http/http.dart';
import 'package:http/io_client.dart';

void main() async {
  final Client httpClient;
  if (Platform.isAndroid) {
    final engine = CronetEngine.build(
        cacheMode: CacheMode.memory,
        cacheMaxSize: 2 * 1024 * 1024,
        userAgent: 'Book Agent');
    httpClient = CronetClient.fromCronetEngine(engine, closeEngine: true);
  } else {
    httpClient = IOClient(HttpClient()..userAgent = 'Book Agent');
  }

  final response = await client.get(
    Uri.https(
      'www.googleapis.com',
      '/books/v1/volumes',
      {'q': 'HTTP', 'maxResults': '40', 'printType': 'books'},
    ),
  );
  httpClient.close();
}

Use embedded Cronet #

If you want your application to work without Google Play Services, you can instead depend on the org.chromium.net:cronet-embedded package by using dart-define to set cronetHttpNoPlay is set to true.

For example:

flutter run --dart-define=cronetHttpNoPlay=true

To use the embedded version in flutter test:

flutter test --dart-define=cronetHttpNoPlay=true
53
likes
150
points
33.9k
downloads

Publisher

verified publisherdart.dev

Weekly Downloads

An Android Flutter plugin that provides access to the Cronet HTTP client.

Repository (GitHub)
View/report issues
Contributing

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter, http, http_profile, jni

More

Packages that depend on cronet_http