import 'package:http/http.dart' as http; import 'dart:io'; Future<String> getIdToken({bool? force}) async { // fetch update token return "abc*******"; } Future<void> main() async { final client = http.Client(); String token = await getIdToken(); http.Response response = await getRequestWithToken(token); if (response.statusCode == 401) { token = await getIdToken(); response = await getRequestWithToken(token); } } Future<http.Response> getRequestWithToken(String token) async { final response = await client.get(Uri.parse("https://senkyaku.jp"), headers: { HttpHeaders.authorizationHeader: 'Bearer $token', },); return response; }