Note: This uses the native http implementation on macOS, iOS and Android. Other platforms still use the Dart http stack.
If you encounter bugs, consider fixing it by opening a PR or at least contribute a failing test case.
A client for Dio which makes use of
cupertino_http
and
cronet_http
to delegate HTTP requests to the native platform instead of the dart:io
platforms.
Inspired by the Dart 2.18 release blog.
Using the native platform implementation, rather than the socket-based
dart:io
HttpClient implementation,
has several advantages:
- It automatically supports platform features such VPNs and HTTP proxies.
- It supports many more configuration options such as only allowing access through WiFi and blocking cookies.
- It supports more HTTP features such as HTTP/3 and custom redirect handling.
Add the native_dio_adapter
package to your
pubspec dependencies.
final dioClient = Dio();
dioClient.httpClientAdapter = NativeAdapter();
Starting from cronet_http
v1.2.0,
you can to use the embedded Cronet implementation
using a simple configuration with `dart-define.
See https://pub.dev/packages/cronet_http#use-embedded-cronet
for more details.