【问题标题】:Global configuration (interceptor) for dio in FlutterFlutter中dio的全局配置(拦截器)
【发布时间】:2020-01-25 18:29:18
【问题描述】:

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

【问题讨论】:

  • 您是否尝试过将所有这些添加到返回 dio 的函数中,然后导入并调用该函数以获取带有标头的 dio 对象
  • @GeorgeHerbert 喜欢帮手吗?

标签: flutter dart dio


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-06-29
    • 2021-06-29
    • 2021-08-28
    • 2021-08-12
    • 2021-06-20
    • 1970-01-01
    • 2019-02-20
    • 2020-12-16
    • 1970-01-01
    相关资源
    最近更新 更多