Flutter 全局 Http 拦截器

标签 flutter dart

我想知道是否有可能有一个全局 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/

相关文章:

flutter pub run build_runner卡住了

flutter - 如何改变滚动条的粗细?

flutter - 在 FutureBuilder 中设置提供者值

flutter - 在Flutter中将forEach循环转换为Future.forEach循环

image_picker : compressing is not supported for type (null). 返回原始质量的图像

firebase - 来自Firestore的数据未显示在 ListView 中

firebase - 用于列表构建的Flutter中的Firestore嵌套查询

flutter - 如何将小部件放在 flutter 中的模态障碍上方?

ios - Flutter - iOS 启动屏幕未正确加载

flutter - 在 Flutter 中添加 3 点弹出菜单 AppBar 的最简单方法