Skip to content

Commit c779a20

Browse files
committed
chore: add dio_http2_adapter
1 parent 91efef2 commit c779a20

File tree

4 files changed

+31
-0
lines changed

4 files changed

+31
-0
lines changed

lib/imports.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export 'package:url_launcher/url_launcher_string.dart';
2727
export 'package:extended_image/extended_image.dart'
2828
show ExtendedImage, LoadState, ExtendedImageMode;
2929
export 'package:dio/dio.dart';
30+
export 'package:dio_http2_adapter/dio_http2_adapter.dart';
3031
export 'package:logger/logger.dart' show Level;
3132
export 'package:path_provider/path_provider.dart';
3233
export 'package:flutter_gen/gen_l10n/app_localizations.dart';

lib/services/api.dart

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ class ApiService extends GetxService {
117117
_http.options.baseUrl = getBaseUrl;
118118
_http.options.connectTimeout = Duration(seconds: env.API_TIMEOUT);
119119

120+
// capture requests and responses
120121
_http.interceptors.add(
121122
InterceptorsWrapper(
122123
onRequest: (options, handler) => _onRequest(options, handler),
@@ -126,11 +127,23 @@ class ApiService extends GetxService {
126127
'[${error.requestOptions.method}] ${error.requestOptions.uri}');
127128
_logger.w(error, stackTrace: error.stackTrace);
128129

130+
// TODO: custom error not work
131+
// https://github.com/cfug/dio/issues/1950
132+
// return handler.reject(ApiError.fromException(error));
133+
129134
return handler.next(error);
130135
},
131136
),
132137
);
133138

139+
// supports reusing connections, header compression, etc.
140+
_http.httpClientAdapter = Http2Adapter(
141+
ConnectionManager(
142+
idleTimeout: Duration(seconds: env.API_TIMEOUT),
143+
onClientCreate: (_, config) => config.onBadCertificate = (_) => true,
144+
),
145+
);
146+
134147
return this;
135148
}
136149

pubspec.lock

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,14 @@ packages:
169169
url: "https://pub.dev"
170170
source: hosted
171171
version: "5.7.0"
172+
dio_http2_adapter:
173+
dependency: "direct main"
174+
description:
175+
name: dio_http2_adapter
176+
sha256: "4c99b7b6960199d836c2ab906b6d2e890a45b31fc67f54f45b3088eabaaa59a1"
177+
url: "https://pub.dev"
178+
source: hosted
179+
version: "2.5.3"
172180
dio_web_adapter:
173181
dependency: transitive
174182
description:
@@ -486,6 +494,14 @@ packages:
486494
url: "https://pub.dev"
487495
source: hosted
488496
version: "1.3.0"
497+
http2:
498+
dependency: transitive
499+
description:
500+
name: http2
501+
sha256: "382d3aefc5bd6dc68c6b892d7664f29b5beb3251611ae946a98d35158a82bbfa"
502+
url: "https://pub.dev"
503+
source: hosted
504+
version: "2.3.1"
489505
http_client_helper:
490506
dependency: transitive
491507
description:

pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ dependencies:
2020

2121
shared_preferences: ^2.3.5
2222
dio: ^5.7.0 # A powerful HTTP networking package for Dart/Flutter
23+
dio_http2_adapter: ^2.5.3
2324
logger: ^2.5.0
2425
refreshed: ^2.10.4 # This is a refreshed version of GetX
2526
events_emitter: ^0.6.0

0 commit comments

Comments
 (0)