Перенаправления для 302 выполняются в ответ на запросы GET или HEAD, а не для POST. Иногда сервер отправляет 302 в ответ на POST (что было в моем случае). В этом случае Dio выдает исключение, которое вы можете поймать - не забудьте проверить, является ли код состояния сервера 302 или, возможно, это другая ошибка.

аюсь отправитьpost запрос в флаттер сDIO пакет.

Вот запрос:

getSessionId() async {

  var csrf = await getCsrftoken();

  var dio = new Dio(new Options(
      baseUrl: "http://xxxxxxx/accounts/login/",
      connectTimeout: 5000,
      receiveTimeout: 100000,
      // 5s
      headers: {
        'Cookie': "csrftoken=" + csrf
      },
      contentType: ContentType.JSON,
      // Transform the response data to a String encoded with UTF8.
      // The default value is [ResponseType.JSON].
      responseType: ResponseType.PLAIN
  ));

  var response;
  response = await dio.post("http://xxxxxxx/accounts/login/",
    data: {
      "username": "xxxxx",
      "password": "xxxxx",
      "csrfmiddlewaretoken" : csrf
    },
    options: new Options(
        contentType: ContentType.parse("application/x-www-form-urlencoded")),
  );

  print("StatusCode: ");
  print(response.statusCode);
  print("Response cookie: ");   //THESE ARE NOT PRINTED
  print(response.headers);
}

После запроса я получаю:

E/flutter ( 4567): [ERROR:flutter/shell/common/shell.cc(181)] Dart Error: Unhandled exception:
    E/flutter ( 4567): DioError [DioErrorType.RESPONSE]: Http status error [302]
    E/flutter ( 4567): #0      getSessionId (file:///C:/get_order/lib/main.dart:36:14)
    E/flutter ( 4567): <asynchronous suspension>

Из этого запроса мне нужно только получитьsessionid cookie, но функция останавливается с необработанным исключением.

Ответы на вопрос(3)

Ваш ответ на вопрос