我需要向我的 Dio 对象添加 多个 拦截器,但我不知道如何做?
我已经添加了一个拦截器以便向请求添加标头。 这是我目前的 Dio 对象 :
Provider(create: (BuildContext context) =>
Dio(BaseOptions(baseUrl: ApiEndPoints.baseURL))
..interceptors.add(InterceptorsWrapper(
onRequest: (options, handler) {
final accessToken = accessTokenChangeNotifier.value;
if (accessToken != null && accessToken.isNotEmpty) {
options.headers['Authorization'] = accessToken;
}
options.headers[HttpHeaders.contentTypeHeader] = "application/json";
handler.next(options);
} ,
onError: (error , handler) async{
try {
handler.resolve(error.response!);
} catch (e) {
return handler.next(error);
}
},
)
)),
现在我想添加另一个名为
curl_logger_dio_interceptor
的记录器拦截器:
根据它的文档我应该像这样添加这个拦截器:
_dio = Dio();
_dio.interceptors.add(CurlLoggerDioInterceptor());
但是我已经在我的 Dio 中添加了一个拦截器,这段代码对我不起作用。 可能我应该使用
_dio.interceptors.addAll
方法,但我不知道如何处理。
您可以使用
add
功能添加更多拦截器..
延续。
Provider(create: (BuildContext context) =>
Dio(BaseOptions(baseUrl: ApiEndPoints.baseURL))
..interceptors.add(InterceptorsWrapper(
onRequest: (options, handler) {
final accessToken = accessTokenChangeNotifier.value;
if (accessToken != null && accessToken.isNotEmpty) {
options.headers['Authorization'] = accessToken;
}
options.headers[HttpHeaders.contentTypeHeader] = "application/json";
handler.next(options);
} ,
onError: (error , handler) async{
try {
handler.resolve(error.response!);
} catch (e) {
return handler.next(error);
}
},
)
)..interceptors.add(CurlLoggerDioInterceptor())),