native_dio_adapter 1.0.0 native_dio_adapter: ^1.0.0 copied to clipboard
A client for dio which makes use of cupertino_http and cronet_http to delegate HTTP requests to the native platform.
Native Dio Adapter #
Note: This uses the native http implementation on macOS, iOS and Android. Other platforms still use the Dart http stack. Please keep in mind that Android is still considered experimental.
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.
Motivation #
Using the native platform implementation, rather than the socket-based dart:io
HttpClient implemententation, 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.
Example #
final dioClient = Dio();
if (Platform.isIOS || Platform.isMacOS || Platform.isAndroid) {
dioClient.httpClientAdapter = NativeAdapter();
}