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

标签 flutter dart dio

第一次使用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;
}

关于flutter - Flutter中dio的全局配置(拦截器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58100500/

相关文章:

android - Hive 生成​​的文件错误 - "control-flow-collections"实验未启用 - Flutter/Dart

dart - Flutter 在后台运行 websocket?

dart - 返回并显示小吃

dart - 有没有人尝试过在 Dart 中使用 Firebase javascript 库?

flutter - Dio - QueuedInterceptor 处理具有多个请求的刷新 token

Flutter web - 服务器响应状态为 404(未找到),main.dart.js :1

flutter - 参数类型 'Future<void> Function(TapPosition)' 无法分配给参数类型 'void Function(TapPosition, LatLng)?'

android - 在 Flutter 中使用新版本更新( native )android 应用程序,同时保留数据库

flutter - 为什么flutter dio拦截器不调用该方法?

Dio改造子库的Flutter缓存机制