Глобальная конфигурация (перехватчик) для диода во Flutter

Впервые с Flutter. Я использую dio для отправки HTTP-запросов, и мне нужно добавить заголовок ко всем запросам, что я делаю с перехватчиком, например:

Dio dio = new Dio();
dio.interceptors.add(InterceptorsWrapper(
    onRequest:(RequestOptions options) async {
      options.headers["X-Requested-With"] = "XMLHttpRequest";
    })
);

Он работает в main.dart, но если я хочу импортировать другой класс, например MyHomePage.dart, и выполнять там HTTP-запросы, мне также придется переопределить перехватчик в этом классе.

Как я могу реализовать этот перехватчик для всего моего приложения, не добавляя его в каждый файл.dart?

2 ответа

Создайте функцию, в которой находится DIO, а затем вызовите ее при необходимости.

Dio getDio() {
  Dio dio = new Dio();
  dio.interceptors.add(InterceptorsWrapper(onRequest: (RequestOptions options) async {
    options.headers["X-Requested-With"] = "XMLHttpRequest";
  }));
  return dio;
}

У меня это сработало хорошо, без перехватчиков, просто создайте класс и используйте его в своем приложении.

Другие вопросы по тегам