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
’sretryPolicyLogMessagesEnabled
property totrue
. 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
AFNetworking 3 support
For- use version 1.x.
AFNetworking 2 support*
For- 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.
AFNetworking 1 support*
For- 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
- This library is open-sourced and maintained by Jakub Truhlář.
- AFNetworking is owned and maintained by the Alamofire Software Foundation.
License
- Like
👍 AFNetworking, this category is published under the MIT License. See LICENSE.md for details.