Skip to content

Commit a601c8b

Browse files
committed
refactor: Add platform-specific HTTP client adapter
- Added isWeb parameter - Uses Browser adapter for web - Uses IO adapter for native
1 parent 95a63db commit a601c8b

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

lib/src/ht_http_client.dart

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
//
22
// ignore_for_file: only_throw_errors
33

4+
import 'package:dio/browser.dart';
45
import 'package:dio/dio.dart';
6+
import 'package:dio/io.dart';
57
import 'package:ht_http_client/src/interceptors/auth_interceptor.dart';
68
import 'package:ht_http_client/src/interceptors/error_interceptor.dart';
79
import 'package:ht_shared/ht_shared.dart'; // Updated import
@@ -30,19 +32,25 @@ class HtHttpClient {
3032
HtHttpClient({
3133
required String baseUrl,
3234
required TokenProvider tokenProvider,
35+
required bool isWeb,
3336
Dio? dioInstance,
3437
List<Interceptor>? interceptors,
3538
}) : _dio = dioInstance ?? Dio() {
3639
// Configure base options
3740
_dio.options = BaseOptions(
3841
baseUrl: baseUrl,
39-
connectTimeout: const Duration(seconds: 15), // Example timeout
40-
receiveTimeout: const Duration(seconds: 15), // Example timeout
41-
sendTimeout: const Duration(seconds: 15), // Example timeout
42-
// Headers can be set here, but AuthInterceptor handles Authorization
43-
// headers: {'Content-Type': 'application/json'},
42+
connectTimeout: const Duration(seconds: 15),
43+
receiveTimeout: const Duration(seconds: 15),
44+
sendTimeout: const Duration(seconds: 15),
4445
);
4546

47+
// Set the appropriate HttpClientAdapter
48+
if (isWeb) {
49+
_dio.httpClientAdapter = BrowserHttpClientAdapter();
50+
} else {
51+
_dio.httpClientAdapter = IOHttpClientAdapter();
52+
}
53+
4654
// Add default interceptors
4755
_dio.interceptors.addAll([
4856
AuthInterceptor(tokenProvider: tokenProvider),
@@ -59,7 +67,7 @@ class HtHttpClient {
5967

6068
/// The configured Dio instance used for making requests.
6169
final Dio _dio;
62-
70+
6371
/// Performs a GET request.
6472
///
6573
/// - [path]: The endpoint path appended to the "baseUrl".
@@ -191,4 +199,4 @@ class HtHttpClient {
191199
rethrow;
192200
}
193201
}
194-
}
202+
}

0 commit comments

Comments
 (0)