Flutter中dio的全局配置(拦截器)

时间:2019-09-25 14:15:51

标签: flutter dart dio

第一次与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文件的情况下为整个应用程序实现此拦截器?

1 个答案:

答案 0 :(得分:1)

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

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