RedirectHandler

public protocol RedirectHandler

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

  • 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 (URLSessionTask, URLRequest, HTTPURLResponse) -> URLRequest?) -> Redirector

    Parameters

    closure

    Closure used to modify the redirect.

    Return Value

    The Redirector.