第一次与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文件的情况下为整个应用程序实现此拦截器?
答案 0 :(得分:1)
创建一个包含DIO的函数,然后在需要的地方调用它
Dio getDio() {
Dio dio = new Dio();
dio.interceptors.add(InterceptorsWrapper(onRequest: (RequestOptions options) async {
options.headers["X-Requested-With"] = "XMLHttpRequest";
}));
return dio;
}