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

Sha*_*haz 2 dart flutter dio

第一次使用 Flutter。我正在使用 dio 发送 HTTP 请求,我必须为所有请求添加一个标头,我使用拦截器来做,如下所示:

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

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

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

小智 5

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

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