Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RedirectException: Redirect loop detected #849

Closed
nieling1 opened this issue Jul 3, 2020 · 1 comment
Closed

RedirectException: Redirect loop detected #849

nieling1 opened this issue Jul 3, 2020 · 1 comment

Comments

@nieling1
Copy link

nieling1 commented Jul 3, 2020

New Issue Checklist

  • [right] I have searched for a similar issue in the project and found none

Issue Info

Platform Name:Flutter,Android
Platform Version:1.20
Dio Version:3.0.9

Issue Description and Steps

dio.get(ret5.realUri.toString(),options: Options(
receiveDataWhenStatusError: true,
));

报错:
[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: DioError [DioErrorType.DEFAULT]: RedirectException: Redirect loop detected
E/flutter (11056): #0 DioMixin._request._errorInterceptorWrapper. (package:dio/src/dio.dart:869:13)
E/flutter (11056):
E/flutter (11056): #1 DioMixin._request._errorInterceptorWrapper. (package:dio/src/dio.dart)
E/flutter (11056): #2 _rootRunUnary (dart:async/zone.dart:1192:38)
E/flutter (11056): #3 _CustomZone.runUnary (dart:async/zone.dart:1085:19)
E/flutter (11056): #4 _FutureListener.handleError (dart:async/future_impl.dart:159:20)
E/flutter (11056): #5 Future._propagateToListeners.handleError (dart:async/future_impl.dart:694:47)
E/flutter (11056): #6 Future._propagateToListeners (dart:async/future_impl.dart:715:24)
E/flutter (11056): #7 Future._completeError (dart:async/future_impl.dart:534:5)
E/flutter (11056): #8 _SyncCompleter._completeError (dart:async/future_impl.dart:58:12)
E/flutter (11056): #9 _Completer.completeError (dart:async/future_impl.dart:30:5)
E/flutter (11056): #10 Future.any. (dart:async/future.dart:464:45)
E/flutter (11056): #11 _rootRunBinary (dart:async/zone.dart:1204:38)
E/flutter (11056): #12 _CustomZone.runBinary (dart:async/zone.dart:1093:19)
E/flutter (11056): #13 _FutureListener.handleError (dart:async/future_impl.dart:155:20)
E/flutter (11056): #14 Future._propagateToListeners.handleError (dart:async/future_impl.dart:694:47)
E/flutter (11056): #15 Future._propagateToListeners (dart:async/future_impl.dart:715:24)
E/flutter (11056): #16 Future._completeError (dart:async/future_impl.dart:534:5)
E/flutter (11056): #17 _AsyncAwaitCompleter.completeError (dart:async-patch/async_patch.dart:43:15)
E/flutter (11056): #18 DioMixin._dispatchRequest (package:dio/src/dio.dart)
E/flutter (11056):
E/flutter (11056): #19 DioMixin._request._interceptorWrapper... (package:dio/src/dio.dart:849:37)
E/flutter (11056): #20 DioMixin.checkIfNeedEnqueue (package:dio/src/dio.dart:1117:22)
E/flutter (11056): #21 DioMixin._request._interceptorWrapper.. (package:dio/src/dio.dart:846:22)
E/flutter (11056): #22 new Future. (dart:async/future.dart:176:37)
E/flutter (11056): #23 _rootRun (dart:async/zone.dart:1180:38)
E/flutter (11056): #24 _CustomZone.run (dart:async/zone.dart:1077:19)
E/flutter (11056): #25 _CustomZone.runGuarded (dart:async/zone.dart:979:7)
E/flutter (11056): #26 _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:1019:23)
E/flutter (11056): #27 _rootRun (dart:async/zone.dart:1184:13)
E/flutter (11056): #28 _CustomZone.run (dart:async/zone.dart:1077:19)
E/flutter (11056): #29 _CustomZone.bindCallback. (dart:async/zone.dart:1003:23)
E/flutter (11056): #30 Timer._createTimer. (dart:async-patch/timer_patch.dart:23:15)
E/flutter (11056): #31 _Timer._runTimers (dart:isolate-patch/timer_impl.dart:398:19)
E/flutter (11056): #32 _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:429:5)
E/flutter (11056): #33 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
E/flutter (11056):
这是一个爬虫程序,抓包发现是重定向到了之前已经处理过的一个页面(只是query部分不同),然后被拦截了

另外就是不能自动处理多次重定向的问题,使用:
response.redirects.forEach((e){
print("redirect: ${e.statusCode} ${e.location}");
});
发现只重定向了一次,代码:
dio.get(
'http://*************',
options: Options(
followRedirects: true,
maxRedirects: 10,
receiveDataWhenStatusError: true
)
);
并没有自动处理重定向

@stale
Copy link

stale bot commented Aug 2, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If this is still an issue, please make sure it is up to date and if so, add a comment that this is still an issue to keep it open. Thank you for your contributions.

@stale stale bot added the stale label Aug 2, 2020
@stale stale bot closed this as completed Aug 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant