Skip to content

Nice category that adds the ability to set the retry interval, retry count and progressiveness.

License

Notifications You must be signed in to change notification settings

kubatruhlar/AFNetworking-RetryPolicy

Repository files navigation

AFNetworking+RetryPolicy

Travis Version Platform Documentation Join the chat at https://gitter.im/AFNetworking-RetryPolicy/ License

If a request timed out, you usually have to call that request again by yourself. AFNetworking+RetryPolicy is an objective-c category that adds the ability to set the retry logic for requests made with AFNetworking.

Features

  • retryCount - How many times to try.
  • retryInterval - Time interval between attempts in seconds.
  • progressive - Next attempt will always take more time than the previous one. (Uses Exponentiation)
  • fatalStatusCodes - These will trigger failure block immediately when received and ends current retry.

Getting started

  • Installing through CocoaPods with pod 'AFNetworking+RetryPolicy'
  • Use #import "AFHTTPSessionManager+RetryPolicy.h" directive.

Want to try it first? Use pod try AFNetworking+RetryPolicy command.

Usage

Example

  • Simple GET request with AFNetworking+RetryPolicy could look like this:
    AFHTTPSessionManager *manager = [AFHTTPSessionManager new];
    [manager GET:@"foo" parameters:nil headers:nil progress:nil success:^(NSURLSessionDataTask *task, id responseObject) {
        NSLog(@"%@", responseObject);
        
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        NSLog(@"%@", error.localizedDescription);
        
    } retryCount:5 retryInterval:2.0 progressive:false fatalStatusCodes:@[@401, @403]];

Log

  • Enable to see what is happening by setting the AFHTTPSessionManager’s retryPolicyLogMessagesEnabled property to true. Disabled by default.

Requirements

  • AFNetworking 4.0 or later
  • Target iOS 9 or later
  • Target OS X/macOS 10.10 or later
  • Xcode 11 or later

Old versions

For AFNetworking 3 support

  • use version 1.x.

For AFNetworking 2 support*

  • use branch afn2-support.
  • Installing through CocoaPods with pod 'AFNetworking+RetryPolicy', git: 'https://github.com/kubatruhlar/AFNetworking-RetryPolicy.git' , branch: 'afn2-support'

*Will not be updated anymore.

For AFNetworking 1 support*

  • use branch afn1-support.
  • Installing through CocoaPods with pod 'AFNetworking+RetryPolicy', git: 'https://github.com/kubatruhlar/AFNetworking-RetryPolicy.git' , branch: 'afn1-support'

*Will not be updated anymore.

Author and credit

License

  • Like 👍 AFNetworking, this category is published under the MIT License. See LICENSE.md for details.