dio_redirect_interceptor 1.0.1 copy "dio_redirect_interceptor: ^1.0.1" to clipboard
dio_redirect_interceptor: ^1.0.1 copied to clipboard

A custom interceptor for Dio HTTP client to handle redirects manually.

example/dio_redirect_interceptor_example.dart

import 'package:dio/dio.dart';
import 'package:dio_redirect_interceptor/src/extension.dart';
import 'package:dio_redirect_interceptor/src/redirect_interceptor.dart';

Future<void> main() async {
  final dio = Dio(
    BaseOptions(
      validateStatus: (status) => status != null && status < 400,
      followRedirects: false,
    ),
  );
  dio.interceptors.addAll([
    // CookieManager(_cookieJar),
    RedirectInterceptor(() => dio),
  ]);
  final response = await dio.get(
    'http://facebook.com',
  ); // auto redirect to https://www.facebook.com
  print("statusCode: ${response.statusCode}");
  print("rawRequestOption uri: ${response.rawRequestOption?.uri}");
  print("redirectCount: ${response.redirectCount}");
  print("uri: ${response.requestOptions.uri}");
  print("rawUri: ${response.rawUri}"); // eq response.rawRequestOption?.uri

  print("-" * 50);
  // disable redirect
  final response1 = await dio.get(
    'http://facebook.com',
    options: Options(extra: {RedirectInterceptor.followRedirects: false}),
  ); // auto redirect to https://www.facebook.com
  print("statusCode: ${response1.statusCode}");
  print("rawRequestOption uri: ${response1.rawRequestOption?.uri}");
  print("redirectCount: ${response1.redirectCount}");
  print("uri: ${response1.requestOptions.uri}");
  print("rawUri: ${response1.rawUri}"); // eq response.rawRequestOption?.uri
}

// output:
//
// statusCode: 200
// rawRequestOption uri: http://facebook.com
// redirectCount: 2
// uri: https://www.facebook.com/
// rawUri: http://facebook.com
// --------------------------------------------------
// statusCode: 301
// rawRequestOption uri: null
// redirectCount: 0
// uri: http://facebook.com
// rawUri: null
2
likes
150
points
42
downloads

Publisher

unverified uploader

Weekly Downloads

A custom interceptor for Dio HTTP client to handle redirects manually.

Repository (GitHub)

Documentation

Documentation
API reference

License

MIT (license)

Dependencies

dio

More

Packages that depend on dio_redirect_interceptor