From 4a9d6dfb5bf9e0b16a36fe43a615b5a2e285659f Mon Sep 17 00:00:00 2001 From: duc Date: Thu, 8 Jun 2023 21:01:43 +0700 Subject: [PATCH 1/7] Update packages --- pubspec.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index ea9c069..9888291 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,8 +11,8 @@ dependencies: sdk: flutter intl: ^0.18.1 connectivity_plus: ^4.0.1 - logger: ^1.3.0 - dio: ^5.1.2 + logger: ^1.4.0 + dio: ^5.2.0+1 http: ^1.0.0 enum_to_string: ^2.0.1 singleton: ^0.0.3-nullsafety From b1c1ca450171b499310c3c1dd0cc07a4d614a784 Mon Sep 17 00:00:00 2001 From: duc Date: Thu, 17 Aug 2023 19:05:08 +0700 Subject: [PATCH 2/7] Update packages --- lib/clients/dio_http.dart | 8 ++++---- lib/robust_log.dart | 2 +- pubspec.yaml | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/clients/dio_http.dart b/lib/clients/dio_http.dart index f901cd4..f0fd024 100644 --- a/lib/clients/dio_http.dart +++ b/lib/clients/dio_http.dart @@ -54,10 +54,10 @@ class DioHttp extends BaseHttp { Future handleException(error) async { if (await validateConnectionError( validateNetwork: _validateNetworkOnError)) { - if (error is DioError) { - if (error.type == DioErrorType.connectionTimeout || - error.type == DioErrorType.sendTimeout || - error.type == DioErrorType.receiveTimeout) { + if (error is DioException) { + if (error.type == DioExceptionType.connectionTimeout || + error.type == DioExceptionType.sendTimeout || + error.type == DioExceptionType.receiveTimeout) { throw NetworkTimeoutException( 'Request ${error.requestOptions.path} timeout [${error.response?.statusCode}] ${error.message}'); } else if (error.response != null) { diff --git a/lib/robust_log.dart b/lib/robust_log.dart index 8b14089..a1912be 100644 --- a/lib/robust_log.dart +++ b/lib/robust_log.dart @@ -41,7 +41,7 @@ class LoggerInterceptor extends Interceptor { @override void onError( - DioError err, + DioException err, ErrorInterceptorHandler handler, ) async { logMessages.add('*** DioError ***:'); diff --git a/pubspec.yaml b/pubspec.yaml index 9888291..58012d0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -10,10 +10,10 @@ dependencies: flutter: sdk: flutter intl: ^0.18.1 - connectivity_plus: ^4.0.1 - logger: ^1.4.0 - dio: ^5.2.0+1 - http: ^1.0.0 + connectivity_plus: ^4.0.2 + logger: ^2.0.1 + dio: ^5.3.2 + http: ^1.1.0 enum_to_string: ^2.0.1 singleton: ^0.0.3-nullsafety internet_connection_checker: ^1.0.0+1 From 86e059958ca0d6fe351e4485e5a7c0e377253ca6 Mon Sep 17 00:00:00 2001 From: duc Date: Tue, 3 Oct 2023 16:57:55 +0700 Subject: [PATCH 3/7] Update libs --- pubspec.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index 58012d0..8ba9288 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,8 +11,8 @@ dependencies: sdk: flutter intl: ^0.18.1 connectivity_plus: ^4.0.2 - logger: ^2.0.1 - dio: ^5.3.2 + logger: ^2.0.2+1 + dio: ^5.3.3 http: ^1.1.0 enum_to_string: ^2.0.1 singleton: ^0.0.3-nullsafety From 8483ceb100236610e9971473cbc2aebbbbdf17d1 Mon Sep 17 00:00:00 2001 From: duc Date: Thu, 7 Dec 2023 15:02:27 +0700 Subject: [PATCH 4/7] Update libs --- pubspec.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index 8ba9288..45cdf1b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -10,10 +10,10 @@ dependencies: flutter: sdk: flutter intl: ^0.18.1 - connectivity_plus: ^4.0.2 + connectivity_plus: ^5.0.2 logger: ^2.0.2+1 - dio: ^5.3.3 - http: ^1.1.0 + dio: ^5.4.0 + http: ^1.1.2 enum_to_string: ^2.0.1 singleton: ^0.0.3-nullsafety internet_connection_checker: ^1.0.0+1 From 8548a11af9c268b1e34a60347ceee2abed04310e Mon Sep 17 00:00:00 2001 From: duc Date: Thu, 7 Dec 2023 15:36:15 +0700 Subject: [PATCH 5/7] Add new timeout & max connection --- lib/clients/dio_http.dart | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/clients/dio_http.dart b/lib/clients/dio_http.dart index f0fd024..19a7d95 100644 --- a/lib/clients/dio_http.dart +++ b/lib/clients/dio_http.dart @@ -1,6 +1,7 @@ import 'dart:io'; import 'package:dio/dio.dart'; +import 'package:dio/io.dart'; import 'package:enum_to_string/enum_to_string.dart'; import 'package:robust_http/clients/base_http.dart'; import 'package:robust_http/exceptions.dart'; @@ -43,7 +44,13 @@ class DioHttp extends BaseHttp { _validateNetworkOnError = options["validateNetworkOnError"]; } + final client = HttpClient() + ..idleTimeout = Duration(seconds: options["idleTimeout"] ?? 3) + ..maxConnectionsPerHost = options["maxConnectionsPerHost"] ?? 20; + _dio = new Dio(baseOptions); + _dio.httpClientAdapter = IOHttpClientAdapter() + ..createHttpClient = () => client; var logLevel = options['logLevel']; if (logLevel != 'none') { _dio.interceptors.add(LoggerInterceptor(logLevel == 'debug')); From 7c25c4a5125047f085b88c77c4296fa102e046de Mon Sep 17 00:00:00 2001 From: duc Date: Fri, 8 Dec 2023 19:49:55 +0700 Subject: [PATCH 6/7] Don't set max connection by default --- lib/clients/dio_http.dart | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/clients/dio_http.dart b/lib/clients/dio_http.dart index 19a7d95..e9ff23b 100644 --- a/lib/clients/dio_http.dart +++ b/lib/clients/dio_http.dart @@ -45,8 +45,11 @@ class DioHttp extends BaseHttp { } final client = HttpClient() - ..idleTimeout = Duration(seconds: options["idleTimeout"] ?? 3) - ..maxConnectionsPerHost = options["maxConnectionsPerHost"] ?? 20; + ..idleTimeout = Duration(seconds: options["idleTimeout"] ?? 3); + + if (options["maxConnectionsPerHost"] != null) { + client.maxConnectionsPerHost = options["maxConnectionsPerHost"]; + } _dio = new Dio(baseOptions); _dio.httpClientAdapter = IOHttpClientAdapter() From 69f2c96da205a5078c9b128106cfff081db979b3 Mon Sep 17 00:00:00 2001 From: Hien Nguyen Date: Fri, 24 May 2024 22:06:52 +0700 Subject: [PATCH 7/7] support dio for web --- lib/clients/dio_http.dart | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/lib/clients/dio_http.dart b/lib/clients/dio_http.dart index e9ff23b..cbcdd03 100644 --- a/lib/clients/dio_http.dart +++ b/lib/clients/dio_http.dart @@ -1,8 +1,10 @@ import 'dart:io'; +import 'package:dio/browser.dart'; import 'package:dio/dio.dart'; import 'package:dio/io.dart'; import 'package:enum_to_string/enum_to_string.dart'; +import 'package:flutter/foundation.dart'; import 'package:robust_http/clients/base_http.dart'; import 'package:robust_http/exceptions.dart'; import 'package:robust_http/file_info.dart'; @@ -44,16 +46,21 @@ class DioHttp extends BaseHttp { _validateNetworkOnError = options["validateNetworkOnError"]; } - final client = HttpClient() - ..idleTimeout = Duration(seconds: options["idleTimeout"] ?? 3); + _dio = new Dio(baseOptions); + HttpClientAdapter adapter; + if (kIsWeb) { + adapter = BrowserHttpClientAdapter(); + } else { + final client = HttpClient() + ..idleTimeout = Duration(seconds: options["idleTimeout"] ?? 3); - if (options["maxConnectionsPerHost"] != null) { - client.maxConnectionsPerHost = options["maxConnectionsPerHost"]; + if (options["maxConnectionsPerHost"] != null) { + client.maxConnectionsPerHost = options["maxConnectionsPerHost"]; + } + adapter = IOHttpClientAdapter() + ..createHttpClient = () => client; } - - _dio = new Dio(baseOptions); - _dio.httpClientAdapter = IOHttpClientAdapter() - ..createHttpClient = () => client; + _dio.httpClientAdapter = adapter; var logLevel = options['logLevel']; if (logLevel != 'none') { _dio.interceptors.add(LoggerInterceptor(logLevel == 'debug'));