2

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

4

1 回答 1

5

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

Dio getDio() {
  Dio dio = new Dio();
  dio.interceptors.add(InterceptorsWrapper(onRequest: (RequestOptions options) async {
    options.headers["X-Requested-With"] = "XMLHttpRequest";
  }));
  return dio;
}
于 2019-09-25T15:11:39.283 回答