Back to Alamofire

RedirectHandler

docs/Protocols/RedirectHandler.html

5.12.02.6 KB
Original Source

RedirectHandler

public protocol RedirectHandler : Sendable

A type that handles how an HTTP redirect response from a remote server should be redirected to the new request.

`

                task(_:willBeRedirectedTo:for:completion:)
                `

Determines how the HTTP redirect response should be redirected to the new request.

The completion closure should be passed one of three possible options:

  1. The new request specified by the redirect (this is the most common use case).
  2. A modified version of the new request (you may want to route it somewhere else).
  3. A nil value to deny the redirect request and return the body of the redirect response.

Declaration

Swift

func task(_ task: URLSessionTask,
          willBeRedirectedTo request: URLRequest,
          for response: HTTPURLResponse,
          completion: @escaping (URLRequest?) -> Void)

Parameters

| task |

The URLSessionTask whose request resulted in a redirect.

| | request |

The URLRequest to the new location specified by the redirect response.

| | response |

The HTTPURLResponse containing the server’s response to the original request.

| | completion |

The closure to execute containing the new URLRequest, a modified URLRequest, or nil.

|

Available where Self == Redirector

`

                follow
                ` Extension method 

Provides a Redirector which follows redirects. Equivalent to Redirector.follow.

Declaration

Swift

public static var follow: Redirector { get }

`

                doNotFollow
                ` Extension method 

Provides a Redirector which does not follow redirects. Equivalent to Redirector.doNotFollow.

Declaration

Swift

public static var doNotFollow: Redirector { get }

`

                modify(using:)
                ` Extension method 

Creates a Redirector which modifies the redirected URLRequest using the provided closure.

Declaration

Swift

public static func modify(using closure: @escaping @Sendable (URLSessionTask, URLRequest, HTTPURLResponse) -> URLRequest?) -> Redirector

Parameters

| closure |

Closure used to modify the redirect.

|

Return Value

The Redirector.