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