无法使用dio设置标头

问题描述

我无法使用dio设置标头。我正在尝试将访问令牌设置为标头。我正在尝试设置标头,以便不需要每个请求都调用它。这是我正在尝试的网络类用dio调用报头

我的网络班级:

class NetworkUtil {
 Dio _dio;
String token;

  getToken() async {
    SharedPreferences preferences = await SharedPreferences.getInstance();
    String getToken = preferences.getString(AppPrefernces.LOGIN_PREF);
    return getToken;
  }

  NetworkUtil() {
    ///Create Dio Object using baseOptions set receiveTimeout,connectTimeout
    BaseOptions options = BaseOptions(receiveTimeout: 5000,connectTimeout: 5000);
    options.baseUrl = ApiConstants.BASE_URL;
    _dio = Dio(options);
    _dio.interceptors.add(InterceptorsWrapper(
        onRequest: (Options option) async{
          //my function to recovery token
          await getToken().then((result) {
            LoginResponse loginResponse = LoginResponse.fromJson(jsonDecode(result));
            token = loginResponse.accessToken;
          });
          option.headers = {
            "Authorization": "Bearer $token"
          };
        }
    ));


  }

   


  ///used for calling Get Request
  Future<Response> get(String url,Map<String,String> params) async {
    Response response = await _dio.get(url,queryParameters: params,options: Options(responseType: ResponseType.json));
    return response;
  }

  ///used for calling post Request
  Future<Response> post(String url,String> params) async {
    Response response = await _dio.post(url,data: params,options: Options(responseType: ResponseType.json));
    return response;
  }
}

解决方法

我使用此设置,对我来说效果很好。

  Future<Dio> createDioWithHeader() async {
    if (_dioWithHeader != null) return _dioWithHeader;

    String token = await appSharedPreferences.getToken();
    String userAgent = await getUserAgent();
    print('User-Agent: $userAgent');
    // base config
    _dioWithHeader = Dio(BaseOptions(
        connectTimeout: 10000,receiveTimeout: 10000,baseUrl: Config.apiBaseUrl,contentType: 'application/json',headers: {
          'Authorization': token,'User-Agent': userAgent
        }));

    // setup interceptors
    return addInterceptors(_dioWithHeader);
  }```

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...