Как я могу запретить Dart HTTP объединять запросы с»? далее»

#flutter #http #dart

Вопрос:

Мой бэкэнд flask предназначен для ответа на 2 отдельных HTTP — запроса для входа в систему и получения данных.

Чтобы войти в систему, делается запрос на публикацию из нескольких частей (только из-за того, что я не могу найти другой простой способ публикации с данными формы).:

 Future<String> login(String username, String paswd) async {
    var headers = {
      'Accept': '*/*',
      'Accept-Encoding': 'gzip, deflate, br',
      'User-Agent': 'testLap',
      'Cache-Control': 'no-cache'
    };
    var request = http.MultipartRequest('POST', Uri.parse(domain   '/login'));
    request.followRedirects = false;
    request.persistentConnection = false;
    request.fields.addAll({'username': username, 'password': paswd});
    if (sessionCookie != "blank") {
      request.headers.addAll({'Cookie': sessionCookie});
    }
    request.headers.addAll(headers);
    http.StreamedResponse response = await request.send().timeout(const Duration(seconds: 5));

    if (response.statusCode == 200) {
      String resBody = await response.stream.bytesToString();
      if (resBody != "Already logged in!...") {
        sessionCookie = response.headers['set-cookie'].toString();
      }
      print(response.headers);
      print(response.headers['set-cookie']);
      print(response.contentLength);
      return (resBody);
    } else {
      print(response.reasonPhrase);
      return ("Failed");
    }
  }
 

Затем, чтобы получить некоторые данные:

 Future<String> myDash() async {
    var request = http.Request('GET', Uri.parse(domain   '/myDash'));
    print("<<MyDash() called>>");
    var headers = {
      "Connection": "keep-alive",
      'Accept': '*/*',
      'Accept-Encoding': 'gzip, deflate, br',
      'User-Agent': 'testLap',
      'Cache-Control': 'no-cache'
    };
    if (UniversalPlatform.isAndroid || UniversalPlatform.isIOS) {
      print("<<Is android>");
      headers.addAll({'Cookie': sessionCookie});
    }
    request.headers.addAll(headers);
    http.StreamedResponse response = await request.send();

    if (response.statusCode == 200) {
      return (await response.stream.bytesToString());
    } else {
      return (response.reasonPhrase.toString());
    }
  }
 

На оборудовании Android emulator , а также в приложении, размещенном на сервере, эти запросы выполняются последовательно и работают безупречно.

Однако, когда я запускаю приложение через отладку chrome (изнутри Android studio), запросы объединяются в https://[domain].xxx/[login-route]?next=/[get-data-route]

Как делаются запросы:

 onPressed: () async {
                  FocusScopeNode currentFocus = FocusScope.of(context);
                  if (!currentFocus.hasPrimaryFocus) {
                    currentFocus.unfocus();
                  }
                  
                  String response = await httpService.login(usernameController.text.trim().toString(), pswdController.text.toString());
                  infoController.text = response;
                  
                  print(response);
                  if(response.contains("****")){
                    String deets = await getDeets();
                    Navigator.pushReplacement(
                      context,
                     MaterialPageRoute(builder: (context) => Dash(name: usernameController.text.trim().toString(), httpService: httpService, dash: deets)),
                      
                    );
                  }

                }
 

getDeets() — Fetches myDash()

Is there a way to stop this from happening? Debugging web is nearly impossible without pushing it onto a server, and I would very much like that not to be the case!

http: ^0.13.3