Clone this repo:
  1. bebd9cb Support the latest pkg:http, prepare for release (#9) by Kevin Moore · 3 weeks ago master 0.1.1+3
  2. a85fefd misc: fix dependency on fake_async (#8) by Kevin Moore · 3 months ago
  3. 11afe5e chore: set max SDK version to <3.0.0 (#5) by Patrice Chalin · 4 months ago 0.1.1+2
  4. e4b936c Remove upper case constants (#4) by Lasse R.H. Nielsen · 6 months ago 0.1.1+1
  5. 405395b Add a whenError() callback to retry requests that error (#3) by Natalie Weizenbaum · 8 months ago 0.1.1

Middleware for the http package that transparently retries failing requests.

To use this, just create an RetryClient that wraps the underlying http.Client:

import 'package:http/http.dart' as http;
import 'package:http_retry/http_retry.dart';

main() async {
  var client = new RetryClient(new http.Client());
  print(await client.read("http://example.org"));
  await client.close();
}

By default, this retries any request whose response has status code 503 Temporary Failure up to three retries. It waits 500ms before the first retry, and increases the delay by 1.5x each time. All of this can be customized using the new RetryClient() constructor.