Skip to content

Commit 5c4525e

Browse files
committed
update sample
1 parent 4734717 commit 5c4525e

File tree

2 files changed

+42
-2
lines changed

2 files changed

+42
-2
lines changed

README.md

+21-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Simple and powerful HTTP client for Flutter and Dart application.
99
import 'dart:io';
1010
1111
import 'package:http/http.dart' as http;
12+
import 'package:http/retry.dart' as httpRetry;
1213
import 'package:http_client_hoc081098/http_client_hoc081098.dart';
1314
1415
import 'user.dart';
@@ -23,11 +24,30 @@ void main() async {
2324
),
2425
);
2526
27+
final innerClient = httpRetry.RetryClient(
28+
http.Client(),
29+
retries: 3,
30+
when: (response) {
31+
print(
32+
'[RetryClient] Checking response: request=${response.request} statusCode=${response.statusCode}');
33+
print('-' * 128);
34+
return response.statusCode == HttpStatus.unauthorized;
35+
},
36+
onRetry: (request, response, retryCount) async {
37+
print(
38+
'[RetryClient] Retrying request: request=$request, response=$response, retryCount=$retryCount');
39+
// Simulate refreshing token
40+
await Future<void>.delayed(const Duration(seconds: 1));
41+
print('-' * 128);
42+
},
43+
);
44+
2645
final client = SimpleHttpClient(
27-
client: http.Client(),
46+
client: innerClient,
2847
timeout: const Duration(seconds: 10),
2948
requestInterceptors: [
3049
(request) async {
50+
print('[requestInterceptors] request=$request');
3151
await Future<void>.delayed(const Duration(milliseconds: 100));
3252
3353
final token = 'hoc081098';

example/lib/http_client_hoc081098_example.dart

+21-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'dart:io';
22

33
import 'package:http/http.dart' as http;
4+
import 'package:http/retry.dart' as httpRetry;
45
import 'package:http_client_hoc081098/http_client_hoc081098.dart';
56

67
import 'user.dart';
@@ -15,11 +16,30 @@ void main() async {
1516
),
1617
);
1718

19+
final innerClient = httpRetry.RetryClient(
20+
http.Client(),
21+
retries: 3,
22+
when: (response) {
23+
print(
24+
'[RetryClient] Checking response: request=${response.request} statusCode=${response.statusCode}');
25+
print('-' * 128);
26+
return response.statusCode == HttpStatus.unauthorized;
27+
},
28+
onRetry: (request, response, retryCount) async {
29+
print(
30+
'[RetryClient] Retrying request: request=$request, response=$response, retryCount=$retryCount');
31+
// Simulate refreshing token
32+
await Future<void>.delayed(const Duration(seconds: 1));
33+
print('-' * 128);
34+
},
35+
);
36+
1837
final client = SimpleHttpClient(
19-
client: http.Client(),
38+
client: innerClient,
2039
timeout: const Duration(seconds: 10),
2140
requestInterceptors: [
2241
(request) async {
42+
print('[requestInterceptors] request=$request');
2343
await Future<void>.delayed(const Duration(milliseconds: 100));
2444

2545
final token = 'hoc081098';

0 commit comments

Comments
 (0)