afnetworking-racretryextensions

AFNetworking+RACRetryExtensions

AFNetworking+RACRetryExtensions is a category that extends the AFNetworking library with ReactiveCocoa extensions to provide retry functionality for network requests.

Features

  • Retries failed network requests
  • Customize the number of retries
  • Customizable retry delays
  • Supports exponential backoff
  • Compatible with AFNetworking versions 2.0 and above

Installation

To install AFNetworking+RACRetryExtensions, you can use CocoaPods. Add the following line to your Podfile:

pod 'AFNetworking+RACRetryExtensions'

Then, run the following command in the Terminal:

pod install

Usage

To use AFNetworking+RACRetryExtensions in your project, follow these steps:

  • Import the necessary headers:
#import <AFNetworking/AFNetworking.h>
#import <AFNetworking-RACRetryExtensions/AFHTTPRequestOperationManager+RACRetryExtensions.h>
  • Create an instance of AFHTTPRequestOperationManager:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
  • Set the maximum number of retries:
[manager rac_setMaxNumberOfRetries:3];
  • Set the retry delay:
[manager rac_setRetryDelay:1.0];
  • Make a network request using the retry mechanism:
RACSignal *signal = [manager rac_GET:@"https://api.example.com/getData" parameters:nil];
[signal subscribeNext:^(AFHTTPRequestOperation *operation) {
    // Success block
} error:^(NSError *error) {
    // Failure block
}];

Additional Options

AFNetworking+RACRetryExtensions offers additional options to customize the retry behavior:

  • Exponential Backoff: Enable exponential backoff to increase delays between retries. To enable exponential backoff, use the following code:
[manager rac_enableExponentialBackoff:YES];
  • Customize Delay Calculation: You can customize the delay calculation function for exponential backoff. Use the following code:
[manager rac_setDelayCalculationBlock:^NSTimeInterval(NSInteger attemptCount, NSTimeInterval delay) {
    // Customize the delay calculation here
    return delay + (attemptCount * delay);
}];

Documentation

For more detailed usage documentation and examples, refer to the official AFNetworking repository and the AFNetworking+RACRetryExtensions GitHub page.

Contributing

If you’d like to contribute to AFNetworking+RACRetryExtensions, feel free to fork the repository and submit a pull request. You can find more information in the project’s CONTRIBUTING.md file.

License

AFNetworking+RACRetryExtensions is available under the MIT license. See the LICENSE file for more information.