如何解决 dio https 状态 401 错误?

Posted

技术标签:

【中文标题】如何解决 dio https 状态 401 错误?【英文标题】:how can i solve dio https status 401 error? 【发布时间】:2021-10-15 15:03:15 【问题描述】:
I/flutter (16411): DioError [DioErrorType.response]: Http status error [401]
I/flutter (16411): #0      DioMixin.assureDioError (package:dio/src/dio_mixin.dart:819:20)
I/flutter (16411): #1      DioMixin._dispatchRequest (package:dio/src/dio_mixin.dart:678:13)
I/flutter (16411): <asynchronous suspension>
I/flutter (16411): #2      DioMixin.fetch.<anonymous closure>.<anonymous closure> (package:dio/src/dio_mixin.dart)
I/flutter (16411): <asynchronous suspension>

【问题讨论】:

您是否尝试过使用任何 API 测试工具? 401 表示未经授权。您需要确定如何制作此 API authorized。例如在标题中添加一些令牌或其他任何内容。 我已将令牌添加为 Dio().options.headers["Authorization"] = "Bearer $token";但它也反映了同样的错误 【参考方案1】:

尝试将令牌添加到 api 标头,如下所示:

  Map<String, String> _headers = <String, String>
    'Content-Type': 'application/json',
    'Accept': 'application/json',
  ;

makeRequest()
_headers['access_token'] = "YOUR_ACCESS_TOKEN";
    Dio dio = new Dio();
  dio.get(url,
          options: Options(
            headers: _headers,
          )));

请注意,密钥可能不是“access_token”,它取决于后端

【讨论】:

以上是关于如何解决 dio https 状态 401 错误?的主要内容,如果未能解决你的问题,请参考以下文章

flutter dio(4.0.0) 处理令牌过期(处理 401)

如何解决访问 DatoCMS 的 Apollo 错误 401

python接口测试之401错误的分析和解决(十六)

如何在 .Net Core 中返回错误状态代码 401 的自定义错误消息?

401的错误分析

颤振无法从 api 获取数据,dio 错误