我想知道是否有可能有一个全局 HTTP 拦截器来为 Flutter 中的所有请求在 header 中附加 token ?我已经搜索了很多,但找不到任何关于在哪里以及如何将其设置为全局的信息。非常感谢!
最佳答案
使用 dio包你可以这样做:
Dio dio = Dio(BaseOptions(
connectTimeout: 30000,
baseUrl: 'your api',
responseType: ResponseType.json,
contentType: ContentType.json.toString(),
))
..interceptors.addAll(
[
InterceptorsWrapper(onRequest: (RequestOptions requestOptions) {
dio.interceptors.requestLock.lock();
String token = ShareP.sharedPreferences.getString('token');
if (token != null) {
dio.options.headers[HttpHeaders.authorizationHeader] =
'Bearer ' + token;
}
dio.interceptors.requestLock.unlock();
return requestOptions;
}),
// other interceptor
],
);
关于Flutter 全局 Http 拦截器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60745811/