followRedirects method

Future<Response> followRedirects(
  1. Response response
)

Fonction prenant en charge les redirections dans le cadre d'une connexion à un service

Implementation

Future<http.Response> followRedirects(http.Response response) async {
  final url = response.headers["location"];
  /*final request = http.Request('GET', Uri.parse(url!))
    ..followRedirects = false
    ..headers['cookie'] = headers["Cookie"]!;
  http.StreamedResponse resp = await client.send(request);*/
  int redirectCount = 0;
  while ((response.statusCode == 302 || response.statusCode == 303) && redirectCount < 10) {
    final location = response.headers['location'];
    if (location == null) break;

    final newUrl = location.startsWith('http')
        ? location
        : Uri.parse(response.request!.url.toString()).resolve(location).toString();

    response = await session.get(Uri.parse(newUrl), headers: headers);
    redirectCount++;
    sleep(Duration(milliseconds: 10));
  }

  if (redirectCount >= 10) {
    throw Exception("Trop de redirections (boucle probable)");
  }
  if (response.statusCode == 200){
    logger("ON A REUSSI A SE CONNECTER YAHOOOO");
  }

  return response;
}