我想知道是否可以使用全局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
 ],
);

09-04 22:41