Как собрать этот класс дартс, чтобы я мог использовать его в разных частях моего кода - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь реализовать перехватчик Dio, чтобы иметь возможность использовать его с моим кодом.

Я буду использовать этот перехватчик во многих местах. Поэтому я подумал, что имеет смысл поместить его в класс или интерфейс в зависимости от того, что лучше, и просто расширить или реализовать мои подклассы.

Пока у меня есть это:

class AppInterceptor {
  Dio dio = Dio();
  AppInterceptor() {
    dio.interceptors
        .add(InterceptorsWrapper(onRequest: (Options options) async {
        var token = await getAuthorizationToken();

        options.headers["Authorization"] = 'Bearer $token';
        return options;

    }, onResponse: (Response response) {
      // Finally, the string is parsed into a JSON object.
      //print(response.toString());
      return response;
    }, onError: (DioError e) {
      print('somthing went wrong');
      // Do something with response error
      return e; //continue
    }));
  }
}

Как использовать это в подклассе для выполнения http-вызова?

Я пытался сделать что-то подобное, пытаясь выполнить мой http-вызов:

 Response response = await AppInterceptor.dio.post(Global.functionsUrl+'/auth/linkuseraccount/', data: {'hey': 'hello'});
  print(response);

Каждый раз происходит сбой с Unhandled Exception: DioError [DioErrorType.RESPONSE]: Http status error [403]

Из моего бэкэнда я могу сказать, что он не работает, потому что перехватчик не прошел в заголовке аутентификации.

Как мне go об этом?

...