onRequest method
The callback will be executed before the request is initiated.
If you want to continue the request, call handler.next
.
If you want to complete the request with some custom data,
you can resolve a Response object with handler.resolve
.
If you want to complete the request with an error message,
you can reject a DioError
object with handler.reject
.
Implementation
@override
Future<dynamic> onRequest(
RequestOptions options,
RequestInterceptorHandler handler,
) async {
var currentToken = await token;
// Check token before sending a request.
if (_shouldRefreshBeforeRequest(currentToken)) {
try {
final refreshedToken = await _refreshToken(currentToken, _httpClient);
await setToken(refreshedToken);
} on RevokeTokenException catch (error) {
await clearToken();
throw DioError(
requestOptions: options,
error: error,
);
}
}
super.onRequest(options, handler);
}