第一次与Flutter合作。我正在使用dio发送HTTP请求,并且必须向所有请求添加 header ,这是使用拦截器执行的,如下所示:

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

它可以在main.dart中工作,但是如果我想导入另一个类(如MyHomePage.dart)并在那里进行HTTP请求,我也必须在该类中重新定义拦截器。

如何在不将其添加到每个.dart文件的情况下为整个应用程序实现此拦截器?

最佳答案

创建一个包含DIO的函数,然后在需要时调用它

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

10-06 08:01