AFNetworking Retry Policy is a powerful feature that allows developers to control how network requests are reattempted in case of failures. This documentation will guide you through the process of implementing and customizing the retry policy in your AFNetworking project.


  • A working installation of AFNetworking framework
  • Familiarity with Objective-C or Swift programming languages


The AFNetworking Retry Policy is already included within the AFNetworking framework. If you have an existing AFNetworking installation, you are ready to dive into using the retry policy. If not, please follow the official AFNetworking installation guide to set up the framework in your project.

Enabling Retry Policy

To enable the AFNetworking Retry Policy, simply follow these steps:

  1. Import the AFNetworking framework into your project.
  2. Create a new instance of `AFHTTPSessionManager` or any of its subclasses to handle your network requests.
  3. Set the `retryPolicy` property of the session manager instance to your desired retry policy configuration.

Example – Configuring Retry Policy

Here’s an example illustrating how to configure the AFNetworking Retry Policy:

// Initialize AFHTTPSessionManager
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

// Configure the retry policy
AFHTTPRequestRetryPolicy *retryPolicy = [[AFHTTPRequestRetryPolicy alloc] initWithMaximumRetryCount:3
manager.retryPolicy = retryPolicy;


In the example above, a new instance of `AFHTTPSessionManager` is created, and a `AFHTTPRequestRetryPolicy` object is initialized with a maximum retry count of 3 and a retry interval of 5 seconds. Then, the created retry policy is assigned to the `retryPolicy` property of the session manager.

Customizing Retry Policy

The AFNetworking Retry Policy offers various customization options to match your specific requirements. Here are some key customizable properties:

  • Maximum Retry Count: The maximum number of times a request should be retried before considering it a failure.
  • Retry Interval: The time interval (in seconds) between each retry attempt.
  • Retryable HTTP Status Codes: The HTTP status codes that should trigger a retry attempt.

Example – Custom Retry Policy

Here’s an example demonstrating how to customize the AFNetworking Retry Policy:

// Customizing the retry policy
retryPolicy.maximumRetryCount = 5;
retryPolicy.retryInterval = 10.0;
retryPolicy.retryableStatusCodes = [NSSet setWithObjects:@(404), @(500), nil];


In the above example, the `maximumRetryCount` is modified to 5, meaning the request will be retried up to 5 times before considering it a failure. The `retryInterval` is set to 10 seconds, indicating a 10-second delay between each retry attempt. Additionally, the `retryableStatusCodes` property is customized to include 404 and 500 HTTP status codes, triggering a retry for these specific errors.


With the AFNetworking Retry Policy, you now have the ability to control and customize how your network requests are retried upon failure. Take advantage of this powerful feature to enhance the reliability and resilience of your applications.