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

Folders and files

NameName
Last commit message
Last commit date
May 23, 2020
May 23, 2020
Sep 29, 2016
Oct 13, 2016
Sep 29, 2016
May 23, 2020
Sep 29, 2016
May 23, 2020

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.