@@ -15,26 +15,19 @@ final _logger = Logger('tool.sdk_version');
15
15
Future <CachedSdkVersion ?> fetchLatestDartSdkVersion ({
16
16
required String channel,
17
17
}) async {
18
- for (var i = 0 ; i < 3 ; i++ ) {
19
- final client = httpRetryClient ();
20
- try {
21
- final rs = await client.get (Uri .parse (
22
- 'https://storage.googleapis.com/dart-archive/channels/$channel /release/latest/VERSION' ));
23
- if (rs.statusCode != 200 ) {
24
- _logger.warning (
25
- 'Unable to fetch the Dart SDK version, status code: ${rs .statusCode }' );
26
- continue ;
27
- }
28
- final map = json.decode (rs.body) as Map <String , dynamic >;
29
- final version = map['version' ] as String ;
30
- final date = DateTime .parse (map['date' ] as String );
31
- return CachedSdkVersion (version, date);
32
- } catch (e, st) {
33
- _logger.warning ('Unable to fetch the Dart SDK version' , e, st);
34
- continue ;
35
- } finally {
36
- client.close ();
37
- }
18
+ try {
19
+ return await httpGetWithRetry (
20
+ Uri .parse (
21
+ 'https://storage.googleapis.com/dart-archive/channels/$channel /release/latest/VERSION' ),
22
+ responseFn: (rs) {
23
+ final map = json.decode (rs.body) as Map <String , dynamic >;
24
+ final version = map['version' ] as String ;
25
+ final date = DateTime .parse (map['date' ] as String );
26
+ return CachedSdkVersion (version, date);
27
+ },
28
+ );
29
+ } catch (e, st) {
30
+ _logger.warning ('Unable to fetch the Dart SDK version' , e, st);
38
31
}
39
32
return null ;
40
33
}
0 commit comments