@@ -262,43 +262,49 @@ class InterceptedClient extends BaseClient {
262262 void _checkResponseSuccess (Uri url, Response response) {
263263 if (response.statusCode < 400 ) return ;
264264 final StringBuffer message = StringBuffer ()
265- ..write ("Request to $url failed with status ${response .statusCode }" );
266- if (response.reasonPhrase != null ) {
267- message.write (": ${response .reasonPhrase }" );
268- }
265+ ..writeAll ([
266+ "Request to $url failed with status ${response .statusCode }" ,
267+ if (response.reasonPhrase != null ) ": ${response .reasonPhrase }" ,
268+ ]);
269+
269270 throw ClientException ("$message ." , url);
270271 }
271272
272273 /// Attempts to perform the request and intercept the data
273274 /// of the response
274- Future <BaseResponse > _attemptRequest (BaseRequest request,
275- {bool isStream = false }) async {
275+ Future <BaseResponse > _attemptRequest (
276+ BaseRequest request, {
277+ bool isStream = false ,
278+ }) async {
276279 _retryCount = 0 ; // Reset retry count for each new request
277280 return _attemptRequestWithRetries (request, isStream: isStream);
278281 }
279282
280283 /// Internal method that handles the actual request with retry logic
281- Future <BaseResponse > _attemptRequestWithRetries (BaseRequest request,
282- {bool isStream = false }) async {
284+ Future <BaseResponse > _attemptRequestWithRetries (
285+ BaseRequest request, {
286+ bool isStream = false ,
287+ }) async {
283288 BaseResponse response;
289+
284290 try {
285291 // Intercept request
286292 final BaseRequest interceptedRequest = await _interceptRequest (request);
287293
288- StreamedResponse stream;
294+ late final StreamedResponse stream;
295+
289296 if (requestTimeout == null ) {
290297 stream = await _inner.send (interceptedRequest);
291298 } else {
292299 // Use a completer to properly handle timeout and cancellation
293- final completer = Completer < StreamedResponse > ();
300+ final Completer < StreamedResponse > completer = Completer ();
294301 final Future <StreamedResponse > requestFuture =
295302 _inner.send (interceptedRequest);
296303
297304 // Set up timeout with proper cleanup
298- Timer ? timeoutTimer;
299305 bool isCompleted = false ;
300306
301- timeoutTimer = Timer (requestTimeout! , () {
307+ final Timer timeoutTimer = Timer (requestTimeout! , () {
302308 if (! isCompleted) {
303309 isCompleted = true ;
304310 if (onRequestTimeout != null ) {
@@ -337,15 +343,15 @@ class InterceptedClient extends BaseClient {
337343
338344 // Handle the actual request completion
339345 requestFuture.then ((streamResponse) {
340- timeoutTimer? .cancel ();
346+ timeoutTimer.cancel ();
341347 if (! isCompleted) {
342348 isCompleted = true ;
343349 if (! completer.isCompleted) {
344350 completer.complete (streamResponse);
345351 }
346352 }
347353 }).catchError ((error) {
348- timeoutTimer? .cancel ();
354+ timeoutTimer.cancel ();
349355 if (! isCompleted) {
350356 isCompleted = true ;
351357 if (! completer.isCompleted) {
@@ -429,7 +435,8 @@ class InterceptedClient extends BaseClient {
429435 StackTrace ? stackTrace,
430436 }) async {
431437 for (InterceptorContract interceptor in interceptors) {
432- if (await interceptor.shouldInterceptError ()) {
438+ if (await interceptor.shouldInterceptError (
439+ request: request, response: response)) {
433440 await interceptor.interceptError (
434441 request: request,
435442 response: response,
0 commit comments