Я пытаюсь реализовать перехватчик 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 об этом?